@acorex/platform 21.0.0-next.73 → 21.0.0-next.75
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/fesm2022/acorex-platform-common.mjs +403 -17
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-contracts.mjs +28 -0
- package/fesm2022/acorex-platform-contracts.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +8 -2
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-builder.mjs +2 -4
- package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +2 -1
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +17 -70
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +2 -1
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets.mjs +226 -218
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/acorex-platform-workflow.mjs +0 -14
- package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
- package/package.json +1 -1
- package/types/acorex-platform-common.d.ts +83 -257
- package/types/acorex-platform-contracts.d.ts +902 -1
- package/types/acorex-platform-layout-builder.d.ts +2 -5
- package/types/acorex-platform-layout-widget-core.d.ts +1 -25
- package/types/acorex-platform-layout-widgets.d.ts +16 -13
- package/types/acorex-platform-workflow.d.ts +3 -670
|
@@ -21,7 +21,7 @@ import * as i1$6 from '@acorex/components/text-box';
|
|
|
21
21
|
import { AXTextBoxModule } from '@acorex/components/text-box';
|
|
22
22
|
import * as i6 from '@acorex/core/translation';
|
|
23
23
|
import { AXTranslationModule, AXTranslationService, resolveMultiLanguageString } from '@acorex/core/translation';
|
|
24
|
-
import { AXP_LOCALE_MANAGEMENT_PORT, AXPFilterOperatorMiddlewareService, AXPCleanNestedFilters, AXPClipBoardService, AXPSettingsService, AXPRegionalSetting, ALL_DEFAULT_OPERATORS, DATE_OPERATORS, BOOLEAN_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, resolveDateFilterPresets, findManualPresetIdByOperation, applyDateFilterPreset, AXPFileStorageService, AXPFileActionsService, AXPStatusDefinitionProviderService, AXPRefreshEvent, AXPCommonSettings } from '@acorex/platform/common';
|
|
24
|
+
import { AXP_LOCALE_MANAGEMENT_PORT, AXPFilterOperatorMiddlewareService, AXPCleanNestedFilters, AXPClipBoardService, AXPSettingsService, AXPRegionalSetting, ALL_DEFAULT_OPERATORS, DATE_OPERATORS, BOOLEAN_OPERATORS, NUMBER_OPERATORS, STRING_OPERATORS, resolveDateFilterPresets, findManualPresetIdByOperation, applyDateFilterPreset, AXPFileStorageService, AXPFileActionsService, normalizePositiveNumberOption, resolveEntityRowDisplayText, resolveEntityRowDisplayTitle, downloadGraphicFromElement, printGraphicFromElement, AXPStatusDefinitionProviderService, AXPRefreshEvent, AXPCommonSettings } from '@acorex/platform/common';
|
|
25
25
|
import { AXPDeviceService, setSmart, AXPColorPaletteService, extractValue, shouldUseLocaleMapShape, buildLocaleTextMapValue, AXPTagService, AXPExpressionEvaluatorService, AXPHookService, AXPDataGenerator, AXPDataSourceDefinitionProviderService, sortByMultiLanguageString, applyQueryArray, chordToKbdItemKeys, objectKeyValueTransforms } from '@acorex/platform/core';
|
|
26
26
|
import * as i1$4 from '@angular/common';
|
|
27
27
|
import { CommonModule, AsyncPipe } from '@angular/common';
|
|
@@ -6542,6 +6542,7 @@ class AXPRichTextWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
6542
6542
|
[placeHolder]="(placeholder() | translate | async)!"
|
|
6543
6543
|
[disabled]="disabled()"
|
|
6544
6544
|
[readonly]="readonly()"
|
|
6545
|
+
[initialLine]="3"
|
|
6545
6546
|
[look]="'solid'"
|
|
6546
6547
|
[ngModel]="getCurrentText()"
|
|
6547
6548
|
(onValueChanged)="onWysiwygChanged($event)"
|
|
@@ -6573,7 +6574,7 @@ class AXPRichTextWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
6573
6574
|
[options]="validation.options"
|
|
6574
6575
|
></ax-validation-rule>
|
|
6575
6576
|
}
|
|
6576
|
-
</ax-wysiwyg-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.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: AXWysiwygModule }, { kind: "component", type: i2$5.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$5.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i2$5.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i2$5.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i2$5.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i2$5.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i2$5.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert" }, { kind: "component", type: i2$5.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i2$5.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.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: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
6577
|
+
</ax-wysiwyg-container>`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.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: AXWysiwygModule }, { kind: "component", type: i2$5.AXWysiwygContainerComponent, selector: "ax-wysiwyg-container", inputs: ["look", "readonly", "disabled", "value", "placeHolder", "initialLine"], outputs: ["onValueChanged"] }, { kind: "component", type: i2$5.AXWysiwygViewComponent, selector: "ax-wysiwyg-view" }, { kind: "component", type: i2$5.AXWysiwygAlignmentComponent, selector: "ax-wysiwyg-alignment" }, { kind: "component", type: i2$5.AXWysiwygColorsComponent, selector: "ax-wysiwyg-colors" }, { kind: "component", type: i2$5.AXWysiwygFontStyleComponent, selector: "ax-wysiwyg-font-style" }, { kind: "component", type: i2$5.AXWysiwygHistoryComponent, selector: "ax-wysiwyg-history" }, { kind: "component", type: i2$5.AXWysiwygInsertComponent, selector: "ax-wysiwyg-insert" }, { kind: "component", type: i2$5.AXWysiwygListComponent, selector: "ax-wysiwyg-list" }, { kind: "component", type: i2$5.AXWysiwygToolbarComponent, selector: "ax-wysiwyg-toolbar" }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i3.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message", "disabled"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.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: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
6577
6578
|
}
|
|
6578
6579
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPRichTextWidgetEditComponent, decorators: [{
|
|
6579
6580
|
type: Component,
|
|
@@ -6584,6 +6585,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
6584
6585
|
[placeHolder]="(placeholder() | translate | async)!"
|
|
6585
6586
|
[disabled]="disabled()"
|
|
6586
6587
|
[readonly]="readonly()"
|
|
6588
|
+
[initialLine]="3"
|
|
6587
6589
|
[look]="'solid'"
|
|
6588
6590
|
[ngModel]="getCurrentText()"
|
|
6589
6591
|
(onValueChanged)="onWysiwygChanged($event)"
|
|
@@ -12010,46 +12012,59 @@ var mapWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
|
12010
12012
|
AXPMapWidgetViewComponent: AXPMapWidgetViewComponent
|
|
12011
12013
|
});
|
|
12012
12014
|
|
|
12013
|
-
|
|
12014
|
-
|
|
12015
|
-
|
|
12016
|
-
|
|
12017
|
-
|
|
12018
|
-
|
|
12019
|
-
|
|
12020
|
-
|
|
12021
|
-
|
|
12022
|
-
|
|
12023
|
-
|
|
12024
|
-
|
|
12025
|
-
|
|
12026
|
-
|
|
12027
|
-
|
|
12028
|
-
|
|
12029
|
-
|
|
12030
|
-
|
|
12031
|
-
|
|
12032
|
-
|
|
12033
|
-
|
|
12034
|
-
|
|
12035
|
-
|
|
12036
|
-
|
|
12037
|
-
|
|
12038
|
-
|
|
12039
|
-
|
|
12040
|
-
|
|
12041
|
-
|
|
12042
|
-
|
|
12043
|
-
|
|
12044
|
-
|
|
12045
|
-
|
|
12046
|
-
|
|
12047
|
-
|
|
12048
|
-
|
|
12049
|
-
|
|
12050
|
-
|
|
12051
|
-
|
|
12052
|
-
|
|
12015
|
+
const DEFAULT_QRCODE_SIZE = 200;
|
|
12016
|
+
const AXPQrcodeWidget = {
|
|
12017
|
+
name: 'qrcode',
|
|
12018
|
+
title: '@platform-layout-widgets:widgets.qrcode.title',
|
|
12019
|
+
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
12020
|
+
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
12021
|
+
icon: 'fa-light fa-qrcode',
|
|
12022
|
+
description: '@platform-layout-widgets:widgets.qrcode.description',
|
|
12023
|
+
type: 'view',
|
|
12024
|
+
properties: [
|
|
12025
|
+
AXP_NAME_PROPERTY,
|
|
12026
|
+
AXP_DATA_PATH_PROPERTY,
|
|
12027
|
+
cloneProperty(AXP_COLOR_PROPERTY, { schema: { interface: { defaultValue: '#000000' } } }),
|
|
12028
|
+
cloneProperty(AXP_CONTENT_PROPERTY, { schema: { interface: { defaultValue: 'http://google.com' } } }),
|
|
12029
|
+
createNumberProperty({
|
|
12030
|
+
name: 'size',
|
|
12031
|
+
title: 'Size',
|
|
12032
|
+
path: 'options.size',
|
|
12033
|
+
group: AXP_STYLING_PROPERTY_GROUP,
|
|
12034
|
+
defaultValue: DEFAULT_QRCODE_SIZE,
|
|
12035
|
+
}),
|
|
12036
|
+
createSelectProperty({
|
|
12037
|
+
name: 'level',
|
|
12038
|
+
title: 'Error Correction Level',
|
|
12039
|
+
path: 'options.level',
|
|
12040
|
+
group: AXP_STYLING_PROPERTY_GROUP,
|
|
12041
|
+
dataSource: ['L', 'M', 'Q', 'H'],
|
|
12042
|
+
defaultValue: 'M',
|
|
12043
|
+
}),
|
|
12044
|
+
createSelectProperty({
|
|
12045
|
+
name: 'outputType',
|
|
12046
|
+
title: 'Output Type',
|
|
12047
|
+
path: 'options.outputType',
|
|
12048
|
+
group: AXP_STYLING_PROPERTY_GROUP,
|
|
12049
|
+
dataSource: ['svg', 'canvas'],
|
|
12050
|
+
defaultValue: 'svg',
|
|
12051
|
+
}),
|
|
12052
|
+
],
|
|
12053
|
+
components: {
|
|
12054
|
+
view: {
|
|
12055
|
+
component: () => Promise.resolve().then(function () { return qrcodeWidgetView_component; }).then((c) => c.AXPQrcodeWidgetViewComponent),
|
|
12056
|
+
},
|
|
12057
|
+
edit: {
|
|
12058
|
+
component: () => Promise.resolve().then(function () { return qrcodeWidgetEdit_component; }).then((c) => c.AXPQrcodeWidgetEditComponent),
|
|
12059
|
+
},
|
|
12060
|
+
column: {
|
|
12061
|
+
component: () => Promise.resolve().then(function () { return qrcodeWidgetColumn_component; }).then((c) => c.AXPQrcodeWidgetColumnComponent),
|
|
12062
|
+
},
|
|
12063
|
+
designer: {
|
|
12064
|
+
component: () => Promise.resolve().then(function () { return qrcodeWidgetView_component; }).then((c) => c.AXPQrcodeWidgetViewComponent),
|
|
12065
|
+
},
|
|
12066
|
+
},
|
|
12067
|
+
};
|
|
12053
12068
|
|
|
12054
12069
|
//#region ---- Types ----
|
|
12055
12070
|
const QRCODE_WIDGET_NAME = 'qrcode';
|
|
@@ -12062,6 +12077,7 @@ class AXPQrcodeViewerService {
|
|
|
12062
12077
|
constructor() {
|
|
12063
12078
|
//#region ---- Services & Dependencies ----
|
|
12064
12079
|
this.layoutBuilder = inject(AXPLayoutBuilderService);
|
|
12080
|
+
this.translation = inject(AXTranslationService);
|
|
12065
12081
|
}
|
|
12066
12082
|
//#endregion
|
|
12067
12083
|
//#region ---- Public API ----
|
|
@@ -12074,19 +12090,25 @@ class AXPQrcodeViewerService {
|
|
|
12074
12090
|
.create()
|
|
12075
12091
|
.dialog((dialog) => {
|
|
12076
12092
|
dialog
|
|
12077
|
-
.setTitle(options.title
|
|
12093
|
+
.setTitle(this.resolveDialogTitle(options.title))
|
|
12078
12094
|
.setSize('md')
|
|
12079
12095
|
.setCloseButton(true)
|
|
12080
12096
|
.setContext({ qr: contentValue })
|
|
12081
12097
|
.content((content) => {
|
|
12082
|
-
content
|
|
12098
|
+
content
|
|
12099
|
+
.setDirection('column')
|
|
12100
|
+
.setGap('24px')
|
|
12101
|
+
.setAlignItems('center')
|
|
12102
|
+
.mode('view')
|
|
12103
|
+
.customWidget(QRCODE_WIDGET_NAME, {
|
|
12083
12104
|
name: QRCODE_WIDGET_NAME,
|
|
12084
12105
|
path: 'qr',
|
|
12085
|
-
size: options.size
|
|
12106
|
+
size: normalizePositiveNumberOption(options.size, DEFAULT_QRCODE_SIZE),
|
|
12086
12107
|
level: options.level ?? 'M',
|
|
12087
12108
|
color: options.color ?? '#000000',
|
|
12088
12109
|
readonly: true,
|
|
12089
12110
|
outputType: options.outputType ?? 'svg',
|
|
12111
|
+
showContent: true,
|
|
12090
12112
|
});
|
|
12091
12113
|
})
|
|
12092
12114
|
.setActions((actions) => {
|
|
@@ -12102,6 +12124,12 @@ class AXPQrcodeViewerService {
|
|
|
12102
12124
|
.show();
|
|
12103
12125
|
ref.close();
|
|
12104
12126
|
}
|
|
12127
|
+
//#endregion
|
|
12128
|
+
//#region ---- Utility Methods ----
|
|
12129
|
+
resolveDialogTitle(title) {
|
|
12130
|
+
const resolved = resolveEntityRowDisplayText(title, this.translation.getActiveLang());
|
|
12131
|
+
return resolved || '@platform-layout-widgets:widgets.qrcode.title';
|
|
12132
|
+
}
|
|
12105
12133
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeViewerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
12106
12134
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeViewerService, providedIn: 'root' }); }
|
|
12107
12135
|
}
|
|
@@ -12110,24 +12138,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12110
12138
|
args: [{ providedIn: 'root' }]
|
|
12111
12139
|
}] });
|
|
12112
12140
|
|
|
12141
|
+
//#region ---- Imports ----
|
|
12142
|
+
//#endregion
|
|
12143
|
+
//#region ---- Viewer open helper ----
|
|
12144
|
+
function buildQrcodeViewerOpenOptions(params) {
|
|
12145
|
+
const title = params.data
|
|
12146
|
+
? resolveEntityRowDisplayTitle({
|
|
12147
|
+
data: params.data,
|
|
12148
|
+
widgetOptions: params.widgetOptions,
|
|
12149
|
+
formatService: params.formatService,
|
|
12150
|
+
activeLang: params.activeLang,
|
|
12151
|
+
entity: params.entity,
|
|
12152
|
+
})
|
|
12153
|
+
: '';
|
|
12154
|
+
const levelOption = params.widgetOptions['level'];
|
|
12155
|
+
const resolvedLevel = (typeof levelOption === 'string'
|
|
12156
|
+
? levelOption
|
|
12157
|
+
: levelOption?.id) ?? 'M';
|
|
12158
|
+
return {
|
|
12159
|
+
content: params.content,
|
|
12160
|
+
title: title || params.fallbackTitleKey,
|
|
12161
|
+
size: normalizePositiveNumberOption(params.widgetOptions['size'], DEFAULT_QRCODE_SIZE),
|
|
12162
|
+
level: resolvedLevel,
|
|
12163
|
+
color: params.widgetOptions['color'] ?? '#000000',
|
|
12164
|
+
outputType: params.widgetOptions['outputType'] ?? 'svg',
|
|
12165
|
+
};
|
|
12166
|
+
}
|
|
12167
|
+
async function openQrcodeViewer(viewer, params) {
|
|
12168
|
+
const content = params.content?.trim();
|
|
12169
|
+
if (!content) {
|
|
12170
|
+
return;
|
|
12171
|
+
}
|
|
12172
|
+
await viewer.open(buildQrcodeViewerOpenOptions({ ...params, content }));
|
|
12173
|
+
}
|
|
12174
|
+
//#endregion
|
|
12175
|
+
|
|
12113
12176
|
//#region ---- Component: QR Code Widget Column ----
|
|
12114
12177
|
class AXPQrcodeWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
12115
12178
|
constructor() {
|
|
12116
12179
|
super(...arguments);
|
|
12117
12180
|
//#region ---- Services & Dependencies ----
|
|
12118
12181
|
this.qrcodeViewer = inject(AXPQrcodeViewerService);
|
|
12119
|
-
|
|
12120
|
-
|
|
12121
|
-
this.size = computed(() => this.options?.size ?? 200, ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
12122
|
-
this.level = computed(() => {
|
|
12123
|
-
const opt = this.options?.level;
|
|
12124
|
-
return typeof opt === 'string' ? opt : (opt?.id ?? 'M');
|
|
12125
|
-
}, ...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
|
|
12126
|
-
this.color = computed(() => {
|
|
12127
|
-
const opt = this.options?.color;
|
|
12128
|
-
return AXColorUtil.colorStringToHex(opt ?? '#000000');
|
|
12129
|
-
}, ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
12130
|
-
this.outputType = computed(() => this.options?.outputType ?? 'svg', ...(ngDevMode ? [{ debugName: "outputType" }] : /* istanbul ignore next */ []));
|
|
12182
|
+
this.formatService = inject(AXFormatService);
|
|
12183
|
+
this.translation = inject(AXTranslationService);
|
|
12131
12184
|
}
|
|
12132
12185
|
//#endregion
|
|
12133
12186
|
//#region ---- UI Handlers ----
|
|
@@ -12136,12 +12189,12 @@ class AXPQrcodeWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
|
12136
12189
|
if (!contentValue) {
|
|
12137
12190
|
return;
|
|
12138
12191
|
}
|
|
12139
|
-
await this.qrcodeViewer
|
|
12192
|
+
await openQrcodeViewer(this.qrcodeViewer, {
|
|
12140
12193
|
content: contentValue,
|
|
12141
|
-
|
|
12142
|
-
|
|
12143
|
-
|
|
12144
|
-
|
|
12194
|
+
data: this.rowData,
|
|
12195
|
+
widgetOptions: { ...this.options, size: 500 },
|
|
12196
|
+
formatService: this.formatService,
|
|
12197
|
+
activeLang: this.translation.getActiveLang(),
|
|
12145
12198
|
});
|
|
12146
12199
|
}
|
|
12147
12200
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
@@ -12190,8 +12243,13 @@ var qrcodeWidgetColumn_component = /*#__PURE__*/Object.freeze({
|
|
|
12190
12243
|
class AXPQrcodeWidgetEditComponent extends AXPValueWidgetComponent {
|
|
12191
12244
|
constructor() {
|
|
12192
12245
|
super(...arguments);
|
|
12246
|
+
//#region ---- Services & Dependencies ----
|
|
12247
|
+
this.qrcodeViewer = inject(AXPQrcodeViewerService);
|
|
12248
|
+
this.formatService = inject(AXFormatService);
|
|
12249
|
+
this.translation = inject(AXTranslationService);
|
|
12250
|
+
//#endregion
|
|
12193
12251
|
this.value = computed(() => this.getValue(), ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
12194
|
-
this.size = computed(() => this.options()['size']
|
|
12252
|
+
this.size = computed(() => normalizePositiveNumberOption(this.options()['size'], DEFAULT_QRCODE_SIZE), ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
12195
12253
|
this.level = computed(() => this.options()['level']?.id ?? 'M', ...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
|
|
12196
12254
|
this.color = computed(() => AXColorUtil.colorStringToHex(this.options()['color'] ?? '#000000'), ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
12197
12255
|
this.format = computed(() => this.options()['format']?.id ?? 'png', ...(ngDevMode ? [{ debugName: "format" }] : /* istanbul ignore next */ []));
|
|
@@ -12221,73 +12279,27 @@ class AXPQrcodeWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
12221
12279
|
cancelEdit() {
|
|
12222
12280
|
this.draft.set(this.value() ?? '');
|
|
12223
12281
|
}
|
|
12224
|
-
|
|
12225
|
-
const
|
|
12226
|
-
|
|
12227
|
-
|
|
12228
|
-
this.downloadSVGElement(svg, 'qrcode.svg');
|
|
12229
|
-
}
|
|
12230
|
-
else if (fmt === 'png') {
|
|
12231
|
-
this.rasterizeAndDownload(el, 'image/png', 'qrcode.png');
|
|
12232
|
-
}
|
|
12233
|
-
else {
|
|
12234
|
-
this.rasterizeAndDownload(el, 'image/jpeg', 'qrcode.jpg');
|
|
12282
|
+
async openPreview() {
|
|
12283
|
+
const content = this.value();
|
|
12284
|
+
if (!content) {
|
|
12285
|
+
return;
|
|
12235
12286
|
}
|
|
12287
|
+
await openQrcodeViewer(this.qrcodeViewer, {
|
|
12288
|
+
content,
|
|
12289
|
+
data: this.contextService.data(),
|
|
12290
|
+
widgetOptions: this.options(),
|
|
12291
|
+
formatService: this.formatService,
|
|
12292
|
+
activeLang: this.translation.getActiveLang(),
|
|
12293
|
+
});
|
|
12236
12294
|
}
|
|
12237
|
-
|
|
12238
|
-
|
|
12239
|
-
|
|
12240
|
-
|
|
12241
|
-
|
|
12242
|
-
|
|
12243
|
-
|
|
12244
|
-
|
|
12245
|
-
source = '<?xml version="1.0" standalone="no"?>\r\n' + source;
|
|
12246
|
-
}
|
|
12247
|
-
// Create a Blob and trigger download
|
|
12248
|
-
const blob = new Blob([source], { type: 'image/svg+xml;charset=utf-8' });
|
|
12249
|
-
const url = URL.createObjectURL(blob);
|
|
12250
|
-
const a = document.createElement('a');
|
|
12251
|
-
a.href = url;
|
|
12252
|
-
a.download = filename;
|
|
12253
|
-
document.body.appendChild(a);
|
|
12254
|
-
a.click();
|
|
12255
|
-
document.body.removeChild(a);
|
|
12256
|
-
URL.revokeObjectURL(url);
|
|
12257
|
-
}
|
|
12258
|
-
rasterizeAndDownload(el, mime, filename) {
|
|
12259
|
-
const svgEl = el.querySelector('svg');
|
|
12260
|
-
if (!svgEl)
|
|
12261
|
-
return;
|
|
12262
|
-
const serializer = new XMLSerializer();
|
|
12263
|
-
let source = serializer.serializeToString(svgEl);
|
|
12264
|
-
if (!source.match(/^<\?xml/)) {
|
|
12265
|
-
source = '<?xml version="1.0" standalone="no"?>\r\n' + source;
|
|
12266
|
-
}
|
|
12267
|
-
const svgUrl = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(source);
|
|
12268
|
-
const img = new Image();
|
|
12269
|
-
const size = this.size();
|
|
12270
|
-
const canvas = document.createElement('canvas');
|
|
12271
|
-
canvas.width = size;
|
|
12272
|
-
canvas.height = size;
|
|
12273
|
-
const ctx = canvas.getContext('2d');
|
|
12274
|
-
if (!ctx)
|
|
12275
|
-
return;
|
|
12276
|
-
if (mime === 'image/jpeg') {
|
|
12277
|
-
ctx.fillStyle = '#ffffff';
|
|
12278
|
-
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
12279
|
-
}
|
|
12280
|
-
img.onload = () => {
|
|
12281
|
-
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
|
|
12282
|
-
const url = canvas.toDataURL(mime);
|
|
12283
|
-
const a = document.createElement('a');
|
|
12284
|
-
a.href = url;
|
|
12285
|
-
a.download = filename;
|
|
12286
|
-
document.body.appendChild(a);
|
|
12287
|
-
a.click();
|
|
12288
|
-
document.body.removeChild(a);
|
|
12289
|
-
};
|
|
12290
|
-
img.src = svgUrl;
|
|
12295
|
+
downloadQr(el) {
|
|
12296
|
+
const fmt = this.format();
|
|
12297
|
+
const format = fmt === 'jpg' ? 'jpeg' : fmt;
|
|
12298
|
+
downloadGraphicFromElement(el, {
|
|
12299
|
+
format,
|
|
12300
|
+
filename: `qrcode.${fmt}`,
|
|
12301
|
+
fallbackSize: this.size(),
|
|
12302
|
+
});
|
|
12291
12303
|
}
|
|
12292
12304
|
clearValue() {
|
|
12293
12305
|
this.setValue('');
|
|
@@ -12309,7 +12321,7 @@ class AXPQrcodeWidgetEditComponent extends AXPValueWidgetComponent {
|
|
|
12309
12321
|
}
|
|
12310
12322
|
}
|
|
12311
12323
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12312
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.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$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$3.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 }); }
|
|
12324
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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.preview.title' | translate | async)!\"\n (onClick)=\"openPreview()\"\n >\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n\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", "maskPattern", "customTokens", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress", "onMaskChanged"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i2$1.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.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$2.AXPopoverComponent, selector: "ax-popover", inputs: ["width", "disablePanelClass", "disabled", "offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "closeOnScroll", "backdropClass", "panelClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$3.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 }); }
|
|
12313
12325
|
}
|
|
12314
12326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeWidgetEditComponent, decorators: [{
|
|
12315
12327
|
type: Component,
|
|
@@ -12322,7 +12334,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12322
12334
|
AXTranslationModule,
|
|
12323
12335
|
AsyncPipe,
|
|
12324
12336
|
FormsModule,
|
|
12325
|
-
], 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" }]
|
|
12337
|
+
], 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.preview.title' | translate | async)!\"\n (onClick)=\"openPreview()\"\n >\n <ax-icon icon=\"fa-light fa-expand\"></ax-icon>\n </ax-button>\n\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" }]
|
|
12326
12338
|
}] });
|
|
12327
12339
|
|
|
12328
12340
|
var qrcodeWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
@@ -12333,23 +12345,36 @@ var qrcodeWidgetEdit_component = /*#__PURE__*/Object.freeze({
|
|
|
12333
12345
|
class AXPQrcodeWidgetViewComponent extends AXPValueWidgetComponent {
|
|
12334
12346
|
constructor() {
|
|
12335
12347
|
super(...arguments);
|
|
12348
|
+
//#region ---- Services & Dependencies ----
|
|
12349
|
+
this.qrcodeViewer = inject(AXPQrcodeViewerService);
|
|
12350
|
+
this.formatService = inject(AXFormatService);
|
|
12351
|
+
this.translation = inject(AXTranslationService);
|
|
12352
|
+
//#endregion
|
|
12336
12353
|
//#region ---- View Children ----
|
|
12337
12354
|
this.qrContainer = viewChild('qrContainer', ...(ngDevMode ? [{ debugName: "qrContainer" }] : /* istanbul ignore next */ []));
|
|
12338
12355
|
//#endregion
|
|
12339
12356
|
//#region ---- Computed Properties ----
|
|
12340
|
-
this.size = computed(() => this.options()['size']
|
|
12357
|
+
this.size = computed(() => normalizePositiveNumberOption(this.options()['size'], DEFAULT_QRCODE_SIZE), ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
|
|
12341
12358
|
this.level = computed(() => this.options()['level']?.id ?? 'M', ...(ngDevMode ? [{ debugName: "level" }] : /* istanbul ignore next */ []));
|
|
12342
12359
|
this.color = computed(() => AXColorUtil.colorStringToHex(this.options()['color'] ?? '#000000'), ...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
12343
12360
|
this.outputType = computed(() => this.options()['outputType'] ?? 'svg', ...(ngDevMode ? [{ debugName: "outputType" }] : /* istanbul ignore next */ []));
|
|
12361
|
+
this.showContent = computed(() => !!this.options()['showContent'], ...(ngDevMode ? [{ debugName: "showContent" }] : /* istanbul ignore next */ []));
|
|
12362
|
+
this.contentLabel = computed(() => this.options()['contentLabel'] ?? '@platform-layout-widgets:widgets.qrcode.content', ...(ngDevMode ? [{ debugName: "contentLabel" }] : /* istanbul ignore next */ []));
|
|
12344
12363
|
}
|
|
12345
12364
|
//#endregion
|
|
12346
|
-
//#region ----
|
|
12347
|
-
|
|
12348
|
-
const
|
|
12349
|
-
|
|
12350
|
-
|
|
12351
|
-
|
|
12352
|
-
|
|
12365
|
+
//#region ---- UI Handlers ----
|
|
12366
|
+
async openPreview() {
|
|
12367
|
+
const content = this.getValue();
|
|
12368
|
+
if (!content) {
|
|
12369
|
+
return;
|
|
12370
|
+
}
|
|
12371
|
+
await openQrcodeViewer(this.qrcodeViewer, {
|
|
12372
|
+
content,
|
|
12373
|
+
data: this.contextService.data(),
|
|
12374
|
+
widgetOptions: this.options(),
|
|
12375
|
+
formatService: this.formatService,
|
|
12376
|
+
activeLang: this.translation.getActiveLang(),
|
|
12377
|
+
});
|
|
12353
12378
|
}
|
|
12354
12379
|
//#endregion
|
|
12355
12380
|
//#region ---- Widget API ----
|
|
@@ -12358,26 +12383,47 @@ class AXPQrcodeWidgetViewComponent extends AXPValueWidgetComponent {
|
|
|
12358
12383
|
print: () => {
|
|
12359
12384
|
const container = this.qrContainer()?.nativeElement;
|
|
12360
12385
|
if (container) {
|
|
12361
|
-
|
|
12386
|
+
printGraphicFromElement(container, {
|
|
12387
|
+
fallbackSize: this.size(),
|
|
12388
|
+
title: 'QR Code',
|
|
12389
|
+
imageAlt: 'QR Code',
|
|
12390
|
+
});
|
|
12362
12391
|
}
|
|
12363
12392
|
},
|
|
12364
12393
|
};
|
|
12365
12394
|
}
|
|
12366
12395
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeWidgetViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12367
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPQrcodeWidgetViewComponent, isStandalone: true, selector: "axp-qrcode-widget", host: {
|
|
12396
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: AXPQrcodeWidgetViewComponent, isStandalone: true, selector: "axp-qrcode-widget", host: { classAttribute: "ax-block ax-w-full" }, viewQueries: [{ propertyName: "qrContainer", first: true, predicate: ["qrContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
12368
12397
|
@if (getValue()) {
|
|
12369
|
-
<div
|
|
12370
|
-
<ax-
|
|
12371
|
-
|
|
12372
|
-
|
|
12373
|
-
|
|
12374
|
-
|
|
12375
|
-
|
|
12376
|
-
|
|
12377
|
-
|
|
12398
|
+
<div class="ax-flex ax-w-full ax-flex-col ax-items-center ax-gap-4 ax-text-center">
|
|
12399
|
+
<div #qrContainer class="ax-inline-block">
|
|
12400
|
+
<ax-qrcode
|
|
12401
|
+
[content]="getValue()"
|
|
12402
|
+
[size]="size()"
|
|
12403
|
+
[color]="color()"
|
|
12404
|
+
[level]="level()"
|
|
12405
|
+
[outputType]="outputType()"
|
|
12406
|
+
>
|
|
12407
|
+
</ax-qrcode>
|
|
12408
|
+
</div>
|
|
12409
|
+
@if (showContent()) {
|
|
12410
|
+
<div class="ax-flex ax-max-w-full ax-flex-col ax-items-center ax-gap-1">
|
|
12411
|
+
<span class="ax-text-sm ax-font-medium">{{ contentLabel() | translate | async }}</span>
|
|
12412
|
+
<span class="ax-break-all ax-text-sm">{{ getValue() }}</span>
|
|
12413
|
+
</div>
|
|
12414
|
+
} @else {
|
|
12415
|
+
<ax-button
|
|
12416
|
+
look="twotone"
|
|
12417
|
+
class="ax-sm"
|
|
12418
|
+
[title]="('@general:actions.preview.title' | translate | async)!"
|
|
12419
|
+
(onClick)="openPreview()"
|
|
12420
|
+
>
|
|
12421
|
+
<ax-icon icon="fa-light fa-expand"></ax-icon>
|
|
12422
|
+
</ax-button>
|
|
12423
|
+
}
|
|
12378
12424
|
</div>
|
|
12379
12425
|
}
|
|
12380
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$3.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12426
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i1$1.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: AXDecoratorModule }, { kind: "component", type: i2$1.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXQrcodeModule }, { kind: "component", type: i5$3.AXQrcodeComponent, selector: "ax-qrcode", inputs: ["content", "size", "level", "color", "backgroundColor", "outputType"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12381
12427
|
}
|
|
12382
12428
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AXPQrcodeWidgetViewComponent, decorators: [{
|
|
12383
12429
|
type: Component,
|
|
@@ -12385,84 +12431,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
12385
12431
|
selector: 'axp-qrcode-widget',
|
|
12386
12432
|
template: `
|
|
12387
12433
|
@if (getValue()) {
|
|
12388
|
-
<div
|
|
12389
|
-
<ax-
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
|
|
12393
|
-
|
|
12394
|
-
|
|
12395
|
-
|
|
12396
|
-
|
|
12434
|
+
<div class="ax-flex ax-w-full ax-flex-col ax-items-center ax-gap-4 ax-text-center">
|
|
12435
|
+
<div #qrContainer class="ax-inline-block">
|
|
12436
|
+
<ax-qrcode
|
|
12437
|
+
[content]="getValue()"
|
|
12438
|
+
[size]="size()"
|
|
12439
|
+
[color]="color()"
|
|
12440
|
+
[level]="level()"
|
|
12441
|
+
[outputType]="outputType()"
|
|
12442
|
+
>
|
|
12443
|
+
</ax-qrcode>
|
|
12444
|
+
</div>
|
|
12445
|
+
@if (showContent()) {
|
|
12446
|
+
<div class="ax-flex ax-max-w-full ax-flex-col ax-items-center ax-gap-1">
|
|
12447
|
+
<span class="ax-text-sm ax-font-medium">{{ contentLabel() | translate | async }}</span>
|
|
12448
|
+
<span class="ax-break-all ax-text-sm">{{ getValue() }}</span>
|
|
12449
|
+
</div>
|
|
12450
|
+
} @else {
|
|
12451
|
+
<ax-button
|
|
12452
|
+
look="twotone"
|
|
12453
|
+
class="ax-sm"
|
|
12454
|
+
[title]="('@general:actions.preview.title' | translate | async)!"
|
|
12455
|
+
(onClick)="openPreview()"
|
|
12456
|
+
>
|
|
12457
|
+
<ax-icon icon="fa-light fa-expand"></ax-icon>
|
|
12458
|
+
</ax-button>
|
|
12459
|
+
}
|
|
12397
12460
|
</div>
|
|
12398
12461
|
}
|
|
12399
12462
|
`,
|
|
12400
12463
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
12401
|
-
imports: [AXQrcodeModule],
|
|
12464
|
+
imports: [AXButtonModule, AXDecoratorModule, AXQrcodeModule, AXTranslationModule, AsyncPipe],
|
|
12465
|
+
host: { class: 'ax-block ax-w-full' },
|
|
12402
12466
|
}]
|
|
12403
|
-
}], propDecorators: { qrContainer: [{ type: i0.ViewChild, args: ['qrContainer', { isSignal: true }] }]
|
|
12404
|
-
type: HostBinding,
|
|
12405
|
-
args: ['class']
|
|
12406
|
-
}] } });
|
|
12467
|
+
}], propDecorators: { qrContainer: [{ type: i0.ViewChild, args: ['qrContainer', { isSignal: true }] }] } });
|
|
12407
12468
|
|
|
12408
12469
|
var qrcodeWidgetView_component = /*#__PURE__*/Object.freeze({
|
|
12409
12470
|
__proto__: null,
|
|
12410
12471
|
AXPQrcodeWidgetViewComponent: AXPQrcodeWidgetViewComponent
|
|
12411
12472
|
});
|
|
12412
12473
|
|
|
12413
|
-
const AXPQrcodeWidget = {
|
|
12414
|
-
name: 'qrcode',
|
|
12415
|
-
title: '@platform-layout-widgets:widgets.qrcode.title',
|
|
12416
|
-
categories: [AXP_WIDGETS_ADVANCE_CATEGORY],
|
|
12417
|
-
subCategory: AXP_WIDGETS_ADVANCE_SUB_MEDIA,
|
|
12418
|
-
icon: 'fa-light fa-qrcode',
|
|
12419
|
-
description: '@platform-layout-widgets:widgets.qrcode.description',
|
|
12420
|
-
type: 'view',
|
|
12421
|
-
properties: [
|
|
12422
|
-
AXP_NAME_PROPERTY,
|
|
12423
|
-
AXP_DATA_PATH_PROPERTY,
|
|
12424
|
-
cloneProperty(AXP_COLOR_PROPERTY, { schema: { interface: { defaultValue: '#000000' } } }),
|
|
12425
|
-
cloneProperty(AXP_CONTENT_PROPERTY, { schema: { interface: { defaultValue: 'http://google.com' } } }),
|
|
12426
|
-
createNumberProperty({
|
|
12427
|
-
name: 'size',
|
|
12428
|
-
title: 'Size',
|
|
12429
|
-
path: 'options.size',
|
|
12430
|
-
group: AXP_STYLING_PROPERTY_GROUP,
|
|
12431
|
-
defaultValue: 200,
|
|
12432
|
-
}),
|
|
12433
|
-
createSelectProperty({
|
|
12434
|
-
name: 'level',
|
|
12435
|
-
title: 'Error Correction Level',
|
|
12436
|
-
path: 'options.level',
|
|
12437
|
-
group: AXP_STYLING_PROPERTY_GROUP,
|
|
12438
|
-
dataSource: ['L', 'M', 'Q', 'H'],
|
|
12439
|
-
defaultValue: 'M',
|
|
12440
|
-
}),
|
|
12441
|
-
createSelectProperty({
|
|
12442
|
-
name: 'outputType',
|
|
12443
|
-
title: 'Output Type',
|
|
12444
|
-
path: 'options.outputType',
|
|
12445
|
-
group: AXP_STYLING_PROPERTY_GROUP,
|
|
12446
|
-
dataSource: ['svg', 'canvas'],
|
|
12447
|
-
defaultValue: 'svg',
|
|
12448
|
-
}),
|
|
12449
|
-
],
|
|
12450
|
-
components: {
|
|
12451
|
-
view: {
|
|
12452
|
-
component: () => Promise.resolve().then(function () { return qrcodeWidgetView_component; }).then((c) => c.AXPQrcodeWidgetViewComponent),
|
|
12453
|
-
},
|
|
12454
|
-
edit: {
|
|
12455
|
-
component: () => Promise.resolve().then(function () { return qrcodeWidgetEdit_component; }).then((c) => c.AXPQrcodeWidgetEditComponent),
|
|
12456
|
-
},
|
|
12457
|
-
column: {
|
|
12458
|
-
component: () => Promise.resolve().then(function () { return qrcodeWidgetColumn_component; }).then((c) => c.AXPQrcodeWidgetColumnComponent),
|
|
12459
|
-
},
|
|
12460
|
-
designer: {
|
|
12461
|
-
component: () => Promise.resolve().then(function () { return qrcodeWidgetView_component; }).then((c) => c.AXPQrcodeWidgetViewComponent),
|
|
12462
|
-
},
|
|
12463
|
-
},
|
|
12464
|
-
};
|
|
12465
|
-
|
|
12466
12474
|
//#region ---- Imports ----
|
|
12467
12475
|
//#endregion
|
|
12468
12476
|
//#region ---- Component ----
|
|
@@ -28125,5 +28133,5 @@ var getWidgetsForAi_query = /*#__PURE__*/Object.freeze({
|
|
|
28125
28133
|
* Generated bundle index. Do not edit.
|
|
28126
28134
|
*/
|
|
28127
28135
|
|
|
28128
|
-
export { AXPAddressWidget, AXPAddressWidgetColumnComponent, AXPAddressWidgetEditComponent, AXPAddressWidgetService, AXPAddressWidgetViewComponent, AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetColumnComponent, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetColumnComponent, AXPCheckBoxWidgetDesignerComponent, AXPCheckBoxWidgetEditComponent, AXPCheckBoxWidgetViewComponent, AXPCodeEditorWidget, AXPCodeEditorWidgetColumnComponent, AXPCodeEditorWidgetEditComponent, AXPCodeEditorWidgetViewComponent, AXPColorBoxWidget, AXPColorBoxWidgetColumnComponent, AXPColorBoxWidgetDesignerComponent, AXPColorBoxWidgetEditComponent, AXPColorBoxWidgetViewComponent, AXPColorPaletteWidget, AXPColorPaletteWidgetColumnComponent, AXPColorPaletteWidgetDesignerComponent, AXPColorPaletteWidgetEditComponent, AXPColorPaletteWidgetViewComponent, AXPConditionBuilderWidget, AXPConditionBuilderWidgetEditComponent, AXPConditionBuilderWidgetViewComponent, AXPConnectedDragDropListsWidget, AXPConnectedListsWidgetColumnComponent, AXPConnectedListsWidgetEditComponent, AXPConnectedListsWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetViewComponent, AXPDataListWidget, AXPDataListWidgetViewComponent, AXPDataSourceOptionsWidget, AXPDataSourceOptionsWidgetEditComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetViewComponent, AXPDirectionWidget, AXPDirectionWidgetEditComponent, AXPDragDropListWidget, AXPEditorJsWidget, AXPEditorJsWidgetColumnComponent, AXPEditorJsWidgetEditComponent, AXPEditorJsWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFieldsetWidget, AXPFieldsetWidgetDesignerComponent, AXPFieldsetWidgetViewComponent, AXPFlexItemOptionsWidget, AXPFlexItemOptionsWidgetEditComponent, AXPFlexItemWidget, AXPFlexItemWidgetDesignerComponent, AXPFlexItemWidgetViewComponent, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPFlexWidget, AXPFlexWidgetDesignerComponent, AXPFlexWidgetViewComponent, AXPGalleryWidget, AXPGalleryWidgetEditComponent, AXPGalleryWidgetViewComponent, AXPGetWidgetsForAIQuery, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridItemOptionsWidget, AXPGridItemOptionsWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPImageMarkerPopupComponent, AXPImageMarkerWidget, AXPImageMarkerWidgetColumnComponent, AXPImageMarkerWidgetEditComponent, AXPImageMarkerWidgetViewComponent, AXPItemConfiguratorWidget, AXPItemConfiguratorWidgetColumnComponent, AXPItemConfiguratorWidgetEditComponent, AXPJsonViewerWidget, AXPJsonViewerWidgetEditComponent, AXPJsonViewerWidgetViewComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPListWidgetColumnComponent, AXPListWidgetEditComponent, AXPListWidgetViewComponent, AXPMapWidgetEditComponent, AXPMapWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetViewComponent, AXPOutcomeResultsViewerWidget, AXPOutcomeResultsViewerWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetViewComponent, AXPProgressBarWidget, AXPProgressBarWidgetColumnComponent, AXPProgressBarWidgetEditComponent, AXPProgressBarWidgetViewComponent, AXPProviderSelectWidgetColumnComponent, AXPProviderSelectWidgetEditBase, AXPProviderSelectWidgetViewComponent, AXPQrcodeViewerService, AXPQrcodeWidget, AXPQrcodeWidgetColumnComponent, AXPQrcodeWidgetEditComponent, AXPQrcodeWidgetViewComponent, AXPRatePickerWidget, AXPRatePickerWidgetColumnComponent, AXPRatePickerWidgetEditComponent, AXPRatePickerWidgetViewComponent, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetViewComponent, AXPSchedulerPickerWidget, AXPSchedulerPickerWidgetColumnComponent, AXPSchedulerPickerWidgetEditComponent, AXPSchedulerPickerWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetViewComponent, AXPSelectLanguagePopup, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStatusChipComponent, AXPStatusWidget, AXPStatusWidgetColumnComponent, AXPStatusWidgetEditComponent, AXPStatusWidgetViewComponent, AXPStepWizardWidget, AXPStepWizardWidgetViewComponent, AXPStopwatchWidget, AXPStopwatchWidgetViewComponent, AXPTableItemWidget, AXPTableItemWidgetDesignerComponent, AXPTableItemWidgetViewComponent, AXPTableWidget, AXPTableWidgetDesignerComponent, AXPTableWidgetViewComponent, AXPTagEditorWidget, AXPTagEditorWidgetColumnComponent, AXPTagEditorWidgetEditComponent, AXPTagEditorWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetViewComponent, AXPWidgetFieldConfiguratorWidget, AXPWidgetFieldConfiguratorWidgetColumnComponent, AXPWidgetFieldConfiguratorWidgetEditComponent, AXPWidgetsModule, AXP_ABSOLUTE_UNITS, AXP_BORDER_RADIUS_UNITS, AXP_BORDER_WIDTH_UNITS, AXP_DATA_LIST_CMD_DELETE, AXP_DATA_LIST_CMD_EDIT, AXP_DATA_LIST_PENDING_DELETE_KEY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_RELATIVE_UNITS, AXP_RELATIVE_UNITS_NO_PERCENT, AXP_ROW_EXPR_PREFIX, AXP_SPACING_UNITS, AXP_WIDGET_AI_AGENT_ASSIST_FOLLOW_UP_CHIPS_LAYOUT, AXP_WIDGET_AI_AGENT_CHART_LAYOUT, AXP_WIDGET_AI_AGENT_FORM_LAYOUT, AXP_WIDGET_AI_AGENT_NAMES, 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, matchesWidgetAiAgent
|
|
28136
|
+
export { AXPAddressWidget, AXPAddressWidgetColumnComponent, AXPAddressWidgetEditComponent, AXPAddressWidgetService, AXPAddressWidgetViewComponent, AXPAdvancedGridItemWidget, AXPAdvancedGridItemWidgetDesignerComponent, AXPAdvancedGridItemWidgetViewComponent, AXPAdvancedGridOptionsWidget, AXPAdvancedGridOptionsWidgetEditComponent, AXPAdvancedGridWidget, AXPAdvancedGridWidgetDesignerComponent, AXPAdvancedGridWidgetViewComponent, AXPAvatarWidget, AXPAvatarWidgetColumnComponent, AXPAvatarWidgetDesignerComponent, AXPAvatarWidgetEditComponent, AXPAvatarWidgetViewComponent, AXPBetweenExpressionValidationWidget, AXPBetweenValidationWidgetEditComponent, AXPBlockWidget, AXPBlockWidgetDesignerComponent, AXPBlockWidgetViewComponent, AXPBorderWidget, AXPBorderWidgetEditComponent, AXPButtonWidget, AXPButtonWidgetColumnComponent, AXPButtonWidgetViewComponent, AXPCallbackValidationWidget, AXPCallbackValidationWidgetEditComponent, AXPCheckBoxWidget, AXPCheckBoxWidgetColumnComponent, AXPCheckBoxWidgetDesignerComponent, AXPCheckBoxWidgetEditComponent, AXPCheckBoxWidgetViewComponent, AXPCodeEditorWidget, AXPCodeEditorWidgetColumnComponent, AXPCodeEditorWidgetEditComponent, AXPCodeEditorWidgetViewComponent, AXPColorBoxWidget, AXPColorBoxWidgetColumnComponent, AXPColorBoxWidgetDesignerComponent, AXPColorBoxWidgetEditComponent, AXPColorBoxWidgetViewComponent, AXPColorPaletteWidget, AXPColorPaletteWidgetColumnComponent, AXPColorPaletteWidgetDesignerComponent, AXPColorPaletteWidgetEditComponent, AXPColorPaletteWidgetViewComponent, AXPConditionBuilderWidget, AXPConditionBuilderWidgetEditComponent, AXPConditionBuilderWidgetViewComponent, AXPConnectedDragDropListsWidget, AXPConnectedListsWidgetColumnComponent, AXPConnectedListsWidgetEditComponent, AXPConnectedListsWidgetViewComponent, AXPContactWidget, AXPContactWidgetColumnComponent, AXPContactWidgetEditComponent, AXPContactWidgetViewComponent, AXPDataListWidget, AXPDataListWidgetViewComponent, AXPDataSourceOptionsWidget, AXPDataSourceOptionsWidgetEditComponent, AXPDateTimeBoxWidget, AXPDateTimeBoxWidgetColumnComponent, AXPDateTimeBoxWidgetEditComponent, AXPDateTimeBoxWidgetViewComponent, AXPDirectionWidget, AXPDirectionWidgetEditComponent, AXPDragDropListWidget, AXPEditorJsWidget, AXPEditorJsWidgetColumnComponent, AXPEditorJsWidgetEditComponent, AXPEditorJsWidgetViewComponent, AXPEqualValidationWidget, AXPEqualValidationWidgetEditComponent, AXPFieldsetWidget, AXPFieldsetWidgetDesignerComponent, AXPFieldsetWidgetViewComponent, AXPFlexItemOptionsWidget, AXPFlexItemOptionsWidgetEditComponent, AXPFlexItemWidget, AXPFlexItemWidgetDesignerComponent, AXPFlexItemWidgetViewComponent, AXPFlexOptionsWidget, AXPFlexOptionsWidgetEditComponent, AXPFlexWidget, AXPFlexWidgetDesignerComponent, AXPFlexWidgetViewComponent, AXPGalleryWidget, AXPGalleryWidgetEditComponent, AXPGalleryWidgetViewComponent, AXPGetWidgetsForAIQuery, AXPGreaterThanExpressionValidationWidget, AXPGreaterThanValidationWidgetEditComponent, AXPGridItemOptionsWidget, AXPGridItemOptionsWidgetEditComponent, AXPGridOptionsWidget, AXPGridOptionsWidgetEditComponent, AXPImageMarkerPopupComponent, AXPImageMarkerWidget, AXPImageMarkerWidgetColumnComponent, AXPImageMarkerWidgetEditComponent, AXPImageMarkerWidgetViewComponent, AXPItemConfiguratorWidget, AXPItemConfiguratorWidgetColumnComponent, AXPItemConfiguratorWidgetEditComponent, AXPJsonViewerWidget, AXPJsonViewerWidgetEditComponent, AXPJsonViewerWidgetViewComponent, AXPLargeTextWidget, AXPLargeTextWidgetColumnComponent, AXPLargeTextWidgetEditComponent, AXPLargeTextWidgetViewComponent, AXPLessThanExpressionValidationWidget, AXPLessThanValidationWidgetEditComponent, AXPListWidgetColumnComponent, AXPListWidgetEditComponent, AXPListWidgetViewComponent, AXPMapWidgetEditComponent, AXPMapWidgetViewComponent, AXPMaxLengthExpressionValidationWidget, AXPMaxLengthValidationWidgetEditComponent, AXPMinLengthExpressionValidationWidget, AXPMinLengthValidationWidgetEditComponent, AXPNumberBoxWidget, AXPNumberBoxWidgetColumnComponent, AXPNumberBoxWidgetEditComponent, AXPNumberBoxWidgetViewComponent, AXPOutcomeResultsViewerWidget, AXPOutcomeResultsViewerWidgetViewComponent, AXPPageWidget, AXPPageWidgetViewComponent, AXPPasswordBoxWidget, AXPPasswordBoxWidgetColumnComponent, AXPPasswordBoxWidgetEditComponent, AXPPasswordBoxWidgetViewComponent, AXPProgressBarWidget, AXPProgressBarWidgetColumnComponent, AXPProgressBarWidgetEditComponent, AXPProgressBarWidgetViewComponent, AXPProviderSelectWidgetColumnComponent, AXPProviderSelectWidgetEditBase, AXPProviderSelectWidgetViewComponent, AXPQrcodeViewerService, AXPQrcodeWidget, AXPQrcodeWidgetColumnComponent, AXPQrcodeWidgetEditComponent, AXPQrcodeWidgetViewComponent, AXPRatePickerWidget, AXPRatePickerWidgetColumnComponent, AXPRatePickerWidgetEditComponent, AXPRatePickerWidgetViewComponent, AXPRegularExpressionValidationWidget, AXPRegularExpressionValidationWidgetEditComponent, AXPRepeaterWidget, AXPRepeaterWidgetDesignerComponent, AXPRepeaterWidgetEditComponent, AXPRepeaterWidgetViewComponent, AXPRequiredValidationWidget, AXPRequiredValidationWidgetEditComponent, AXPRichTextWidget, AXPRichTextWidgetColumnComponent, AXPRichTextWidgetEditComponent, AXPRichTextWidgetViewComponent, AXPSchedulerPickerWidget, AXPSchedulerPickerWidgetColumnComponent, AXPSchedulerPickerWidgetEditComponent, AXPSchedulerPickerWidgetViewComponent, AXPSelectBoxWidget, AXPSelectBoxWidgetColumnComponent, AXPSelectBoxWidgetEditComponent, AXPSelectBoxWidgetViewComponent, AXPSelectLanguagePopup, AXPSelectionListWidget, AXPSelectionListWidgetColumnComponent, AXPSelectionListWidgetDesignerComponent, AXPSelectionListWidgetEditComponent, AXPSelectionListWidgetViewComponent, AXPSignatureWidget, AXPSignatureWidgetColumnComponent, AXPSignatureWidgetEditComponent, AXPSignatureWidgetViewComponent, AXPSpacingWidget, AXPSpacingWidgetEditComponent, AXPStatusChipComponent, AXPStatusWidget, AXPStatusWidgetColumnComponent, AXPStatusWidgetEditComponent, AXPStatusWidgetViewComponent, AXPStepWizardWidget, AXPStepWizardWidgetViewComponent, AXPStopwatchWidget, AXPStopwatchWidgetViewComponent, AXPTableItemWidget, AXPTableItemWidgetDesignerComponent, AXPTableItemWidgetViewComponent, AXPTableWidget, AXPTableWidgetDesignerComponent, AXPTableWidgetViewComponent, AXPTagEditorWidget, AXPTagEditorWidgetColumnComponent, AXPTagEditorWidgetEditComponent, AXPTagEditorWidgetViewComponent, AXPTemplateBoxWidget, AXPTemplateBoxWidgetColumnComponent, AXPTemplateBoxWidgetEditComponent, AXPTemplateBoxWidgetPrintComponent, AXPTemplateBoxWidgetViewComponent, AXPTextBoxWidget, AXPTextBoxWidgetColumnComponent, AXPTextBoxWidgetEditComponent, AXPTextBoxWidgetViewComponent, AXPToggleWidget, AXPToggleWidgetColumnComponent, AXPToggleWidgetEditComponent, AXPToggleWidgetViewComponent, AXPWidgetFieldConfiguratorWidget, AXPWidgetFieldConfiguratorWidgetColumnComponent, AXPWidgetFieldConfiguratorWidgetEditComponent, AXPWidgetsModule, AXP_ABSOLUTE_UNITS, AXP_BORDER_RADIUS_UNITS, AXP_BORDER_WIDTH_UNITS, AXP_DATA_LIST_CMD_DELETE, AXP_DATA_LIST_CMD_EDIT, AXP_DATA_LIST_PENDING_DELETE_KEY, AXP_Flex_Box_Align_Options, AXP_Flex_Box_Alignments, AXP_Flex_Box_Justify_Options, AXP_Grid_Box_Align_Items_Options, AXP_Grid_Box_Alignments, AXP_Grid_Box_Justify_Items_Options, AXP_RELATIVE_UNITS, AXP_RELATIVE_UNITS_NO_PERCENT, AXP_ROW_EXPR_PREFIX, AXP_SPACING_UNITS, AXP_WIDGET_AI_AGENT_ASSIST_FOLLOW_UP_CHIPS_LAYOUT, AXP_WIDGET_AI_AGENT_CHART_LAYOUT, AXP_WIDGET_AI_AGENT_FORM_LAYOUT, AXP_WIDGET_AI_AGENT_NAMES, AXP_default_Border_Box_Units, AXP_default_Border_Box_Value, AXP_default_Spacing_Box_Units, AXP_default_Spacing_Box_Value, DEFAULT_QRCODE_SIZE, DEFAULT_STRATEGY_CONFIG, STRATEGY_CONFIG_TOKEN, matchesWidgetAiAgent };
|
|
28129
28137
|
//# sourceMappingURL=acorex-platform-layout-widgets.mjs.map
|