@acorex/platform 20.6.0-next.13 → 20.6.0-next.14
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 +106 -23
- package/fesm2022/acorex-platform-core.mjs +182 -3
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-components.mjs +175 -154
- package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-entity.mjs +64 -87
- package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-views.mjs +16 -14
- package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs +3 -1
- package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs +30 -0
- package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +1 -0
- package/fesm2022/acorex-platform-layout-widgets.mjs +1232 -839
- package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-xq3eQ6t2.mjs → acorex-platform-themes-default-entity-master-list-view.component-pBT9C2n8.mjs} +5 -3
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-pBT9C2n8.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +12 -10
- package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
- package/fesm2022/acorex-platform-themes-shared.mjs +12 -107
- package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
- package/layout/components/index.d.ts +177 -175
- package/layout/designer/index.d.ts +1 -1
- package/layout/entity/index.d.ts +3 -66
- package/layout/views/index.d.ts +4 -58
- package/layout/widget-core/index.d.ts +20 -21
- package/layout/widgets/README.md +0 -1
- package/layout/widgets/index.d.ts +69 -48
- package/package.json +5 -5
- package/themes/default/index.d.ts +4 -71
- package/themes/shared/index.d.ts +1 -39
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-xq3eQ6t2.mjs.map +0 -1
|
@@ -5028,6 +5028,7 @@ class AXPImageEditorPopupComponent extends AXBasePageComponent {
|
|
|
5028
5028
|
this.image = input.required(...(ngDevMode ? [{ debugName: "image" }] : []));
|
|
5029
5029
|
this.showHistory = input(true, ...(ngDevMode ? [{ debugName: "showHistory" }] : []));
|
|
5030
5030
|
this.look = input('blank', ...(ngDevMode ? [{ debugName: "look" }] : []));
|
|
5031
|
+
this.aspectRatio = input(undefined, ...(ngDevMode ? [{ debugName: "aspectRatio" }] : []));
|
|
5031
5032
|
this.container = viewChild(AXImageEditorContainerComponent, ...(ngDevMode ? [{ debugName: "container" }] : []));
|
|
5032
5033
|
this.blobUrl = signal(null, ...(ngDevMode ? [{ debugName: "blobUrl" }] : []));
|
|
5033
5034
|
this.url = signal(null, ...(ngDevMode ? [{ debugName: "url" }] : []));
|
|
@@ -5057,7 +5058,6 @@ class AXPImageEditorPopupComponent extends AXBasePageComponent {
|
|
|
5057
5058
|
}
|
|
5058
5059
|
}
|
|
5059
5060
|
handleSave() {
|
|
5060
|
-
this.container()?.save();
|
|
5061
5061
|
this.close({ data: this.context() });
|
|
5062
5062
|
}
|
|
5063
5063
|
handleCancel() {
|
|
@@ -5070,10 +5070,15 @@ class AXPImageEditorPopupComponent extends AXBasePageComponent {
|
|
|
5070
5070
|
}
|
|
5071
5071
|
}
|
|
5072
5072
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPImageEditorPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5073
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPImageEditorPopupComponent, isStandalone: true, selector: "axp-image-editor-popup", inputs: { image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: true, transformFunction: null }, showHistory: { classPropertyName: "showHistory", publicName: "showHistory", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "container", first: true, predicate: AXImageEditorContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
5073
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPImageEditorPopupComponent, isStandalone: true, selector: "axp-image-editor-popup", inputs: { image: { classPropertyName: "image", publicName: "image", isSignal: true, isRequired: true, transformFunction: null }, showHistory: { classPropertyName: "showHistory", publicName: "showHistory", isSignal: true, isRequired: false, transformFunction: null }, look: { classPropertyName: "look", publicName: "look", isSignal: true, isRequired: false, transformFunction: null }, aspectRatio: { classPropertyName: "aspectRatio", publicName: "aspectRatio", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "container", first: true, predicate: AXImageEditorContainerComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
5074
5074
|
<ax-form class="ax-flex ax-justify-center">
|
|
5075
5075
|
<ax-form-field class="ax-p-2">
|
|
5076
|
-
<ax-image-editor-container
|
|
5076
|
+
<ax-image-editor-container
|
|
5077
|
+
[aspectRatio]="[aspectRatio() ?? '16/9']"
|
|
5078
|
+
#container
|
|
5079
|
+
[look]="look()"
|
|
5080
|
+
(onValueChanged)="handleValueChanged($event)"
|
|
5081
|
+
>
|
|
5077
5082
|
<ax-header>
|
|
5078
5083
|
<ax-toolbar>
|
|
5079
5084
|
<ax-prefix>
|
|
@@ -5089,9 +5094,14 @@ class AXPImageEditorPopupComponent extends AXBasePageComponent {
|
|
|
5089
5094
|
</ax-form>
|
|
5090
5095
|
<ax-footer class="ax-flex ax-justify-end ax-gap-2">
|
|
5091
5096
|
<ax-suffix>
|
|
5092
|
-
<ax-button
|
|
5097
|
+
<ax-button look="solid" (onClick)="handleCancel()" [text]="'@general:actions.cancel.title' | translate | async">
|
|
5093
5098
|
</ax-button>
|
|
5094
|
-
<ax-button
|
|
5099
|
+
<ax-button
|
|
5100
|
+
color="primary"
|
|
5101
|
+
look="solid"
|
|
5102
|
+
(onClick)="handleSave()"
|
|
5103
|
+
[text]="'@general:actions.save.title' | translate | async"
|
|
5104
|
+
>
|
|
5095
5105
|
</ax-button>
|
|
5096
5106
|
</ax-suffix>
|
|
5097
5107
|
</ax-footer>
|
|
@@ -5110,7 +5120,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
5110
5120
|
], template: `
|
|
5111
5121
|
<ax-form class="ax-flex ax-justify-center">
|
|
5112
5122
|
<ax-form-field class="ax-p-2">
|
|
5113
|
-
<ax-image-editor-container
|
|
5123
|
+
<ax-image-editor-container
|
|
5124
|
+
[aspectRatio]="[aspectRatio() ?? '16/9']"
|
|
5125
|
+
#container
|
|
5126
|
+
[look]="look()"
|
|
5127
|
+
(onValueChanged)="handleValueChanged($event)"
|
|
5128
|
+
>
|
|
5114
5129
|
<ax-header>
|
|
5115
5130
|
<ax-toolbar>
|
|
5116
5131
|
<ax-prefix>
|
|
@@ -5126,14 +5141,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
5126
5141
|
</ax-form>
|
|
5127
5142
|
<ax-footer class="ax-flex ax-justify-end ax-gap-2">
|
|
5128
5143
|
<ax-suffix>
|
|
5129
|
-
<ax-button
|
|
5144
|
+
<ax-button look="solid" (onClick)="handleCancel()" [text]="'@general:actions.cancel.title' | translate | async">
|
|
5130
5145
|
</ax-button>
|
|
5131
|
-
<ax-button
|
|
5146
|
+
<ax-button
|
|
5147
|
+
color="primary"
|
|
5148
|
+
look="solid"
|
|
5149
|
+
(onClick)="handleSave()"
|
|
5150
|
+
[text]="'@general:actions.save.title' | translate | async"
|
|
5151
|
+
>
|
|
5132
5152
|
</ax-button>
|
|
5133
5153
|
</ax-suffix>
|
|
5134
5154
|
</ax-footer>
|
|
5135
5155
|
`, styles: ["::ng-deep ax-image-editor-view>canvas{height:65vh}\n"] }]
|
|
5136
|
-
}], propDecorators: { image: [{ type: i0.Input, args: [{ isSignal: true, alias: "image", required: true }] }], showHistory: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHistory", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXImageEditorContainerComponent), { isSignal: true }] }] } });
|
|
5156
|
+
}], propDecorators: { image: [{ type: i0.Input, args: [{ isSignal: true, alias: "image", required: true }] }], showHistory: [{ type: i0.Input, args: [{ isSignal: true, alias: "showHistory", required: false }] }], look: [{ type: i0.Input, args: [{ isSignal: true, alias: "look", required: false }] }], aspectRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "aspectRatio", required: false }] }], container: [{ type: i0.ViewChild, args: [i0.forwardRef(() => AXImageEditorContainerComponent), { isSignal: true }] }] } });
|
|
5137
5157
|
|
|
5138
5158
|
var imageEditorPopup_component = /*#__PURE__*/Object.freeze({
|
|
5139
5159
|
__proto__: null,
|
|
@@ -5153,6 +5173,7 @@ class AXPImageEditorService {
|
|
|
5153
5173
|
image: signal(options?.image),
|
|
5154
5174
|
showHistory: signal(options?.showHistory ?? true),
|
|
5155
5175
|
look: signal(options?.look ?? 'solid'),
|
|
5176
|
+
aspectRatio: signal(options?.aspectRatio),
|
|
5156
5177
|
},
|
|
5157
5178
|
});
|
|
5158
5179
|
return result?.data?.data?.image ?? null;
|
|
@@ -5165,97 +5186,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
5165
5186
|
args: [{ providedIn: 'root' }]
|
|
5166
5187
|
}] });
|
|
5167
5188
|
|
|
5168
|
-
class AXPWidgetPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
5169
|
-
constructor() {
|
|
5170
|
-
super(...arguments);
|
|
5171
|
-
//#region ---- Inputs ----
|
|
5172
|
-
this.widget = input.required(...(ngDevMode ? [{ debugName: "widget" }] : []));
|
|
5173
|
-
this.mode = input('simple', ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
5174
|
-
//#endregion
|
|
5175
|
-
//#region ---- Properties ----
|
|
5176
|
-
this.currentValues = signal({}, ...(ngDevMode ? [{ debugName: "currentValues" }] : []));
|
|
5177
|
-
}
|
|
5178
|
-
//#endregion
|
|
5179
|
-
//#region ---- Event Handlers ----
|
|
5180
|
-
handlePropertyChanged(event) {
|
|
5181
|
-
this.currentValues.set(event.values);
|
|
5182
|
-
}
|
|
5183
|
-
handleCloseClick() {
|
|
5184
|
-
this.close();
|
|
5185
|
-
}
|
|
5186
|
-
handleApplyClick() {
|
|
5187
|
-
this.close({
|
|
5188
|
-
values: this.currentValues(),
|
|
5189
|
-
mode: 'update'
|
|
5190
|
-
});
|
|
5191
|
-
}
|
|
5192
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetPropertyViewerPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.12", type: AXPWidgetPropertyViewerPopupComponent, isStandalone: true, selector: "axp-widget-property-viewer-popup", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
5194
|
-
<div class="ax-flex ax-flex-col ax-h-full ax-overflow-hidden">
|
|
5195
|
-
<axp-widget-property-viewer
|
|
5196
|
-
[widget]="widget()"
|
|
5197
|
-
[mode]="mode()"
|
|
5198
|
-
(onChanged)="handlePropertyChanged($event)">
|
|
5199
|
-
</axp-widget-property-viewer>
|
|
5200
|
-
</div>
|
|
5201
|
-
|
|
5202
|
-
<ax-footer>
|
|
5203
|
-
<ax-suffix>
|
|
5204
|
-
<ax-button
|
|
5205
|
-
look="solid"
|
|
5206
|
-
[text]="'@general:actions.close.title' | translate | async"
|
|
5207
|
-
(onClick)="handleCloseClick()">
|
|
5208
|
-
</ax-button>
|
|
5209
|
-
<ax-button
|
|
5210
|
-
look="solid"
|
|
5211
|
-
color="primary"
|
|
5212
|
-
[text]="'@general:actions.apply.title' | translate | async"
|
|
5213
|
-
(onClick)="handleApplyClick()">
|
|
5214
|
-
</ax-button>
|
|
5215
|
-
</ax-suffix>
|
|
5216
|
-
</ax-footer>
|
|
5217
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5$2.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.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: AXTranslationModule }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget", "mode"], outputs: ["onChanged"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5218
|
-
}
|
|
5219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetPropertyViewerPopupComponent, decorators: [{
|
|
5220
|
-
type: Component,
|
|
5221
|
-
args: [{
|
|
5222
|
-
selector: 'axp-widget-property-viewer-popup',
|
|
5223
|
-
template: `
|
|
5224
|
-
<div class="ax-flex ax-flex-col ax-h-full ax-overflow-hidden">
|
|
5225
|
-
<axp-widget-property-viewer
|
|
5226
|
-
[widget]="widget()"
|
|
5227
|
-
[mode]="mode()"
|
|
5228
|
-
(onChanged)="handlePropertyChanged($event)">
|
|
5229
|
-
</axp-widget-property-viewer>
|
|
5230
|
-
</div>
|
|
5231
|
-
|
|
5232
|
-
<ax-footer>
|
|
5233
|
-
<ax-suffix>
|
|
5234
|
-
<ax-button
|
|
5235
|
-
look="solid"
|
|
5236
|
-
[text]="'@general:actions.close.title' | translate | async"
|
|
5237
|
-
(onClick)="handleCloseClick()">
|
|
5238
|
-
</ax-button>
|
|
5239
|
-
<ax-button
|
|
5240
|
-
look="solid"
|
|
5241
|
-
color="primary"
|
|
5242
|
-
[text]="'@general:actions.apply.title' | translate | async"
|
|
5243
|
-
(onClick)="handleApplyClick()">
|
|
5244
|
-
</ax-button>
|
|
5245
|
-
</ax-suffix>
|
|
5246
|
-
</ax-footer>
|
|
5247
|
-
`,
|
|
5248
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5249
|
-
imports: [
|
|
5250
|
-
CommonModule,
|
|
5251
|
-
AXButtonModule,
|
|
5252
|
-
AXDecoratorModule,
|
|
5253
|
-
AXTranslationModule,
|
|
5254
|
-
AXPWidgetPropertyViewerComponent
|
|
5255
|
-
],
|
|
5256
|
-
}]
|
|
5257
|
-
}], propDecorators: { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: true }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }] } });
|
|
5258
|
-
|
|
5259
5189
|
class AXPQuerySortsComponent {
|
|
5260
5190
|
constructor() {
|
|
5261
5191
|
this.sortDefinitions = model([], ...(ngDevMode ? [{ debugName: "sortDefinitions" }] : []));
|
|
@@ -5746,60 +5676,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
5746
5676
|
args: [{ selector: 'axp-query-views', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [AXTabsModule, AXTranslationModule, CommonModule], template: "<ax-tabs #tabs [look]=\"'with-line'\" class=\"ax-font-semibold\">\n @for (item of views(); track item.name) {\n <ax-tab-item (onClick)=\"setView(item)\" [key]=\"item.name\" [text]=\"(item.title | translate | async) || 'item.title'\">\n </ax-tab-item>\n }\n <!-- <ax-tab-item\n (onClick)=\"createNew()\"\n [key]=\"'create-new'\"\n [text]=\"('@general:actions.create.title' | translate | async) || 'Create New'\"\n >\n </ax-tab-item> -->\n</ax-tabs>\n" }]
|
|
5747
5677
|
}], propDecorators: { tabs: [{ type: i0.ViewChild, args: ['tabs', { isSignal: true }] }], views: [{ type: i0.Input, args: [{ isSignal: true, alias: "views", required: false }] }, { type: i0.Output, args: ["viewsChange"] }], selectedView: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedView", required: true }] }, { type: i0.Output, args: ["selectedViewChange"] }] } });
|
|
5748
5678
|
|
|
5749
|
-
/**
|
|
5750
|
-
* Generic widget item component for displaying selectable widgets with icons, titles, and descriptions.
|
|
5751
|
-
* Can be used across different modules for consistent widget display and interaction.
|
|
5752
|
-
*/
|
|
5753
|
-
class AXPWidgetItemComponent {
|
|
5754
|
-
constructor() {
|
|
5755
|
-
// Inputs
|
|
5756
|
-
/** The widget data to display */
|
|
5757
|
-
this.widget = input.required(...(ngDevMode ? [{ debugName: "widget" }] : []));
|
|
5758
|
-
/** Whether this widget is currently selected */
|
|
5759
|
-
this.isSelected = input(false, ...(ngDevMode ? [{ debugName: "isSelected" }] : []));
|
|
5760
|
-
/** Whether to show the pin button */
|
|
5761
|
-
this.showPinButton = input(true, ...(ngDevMode ? [{ debugName: "showPinButton" }] : []));
|
|
5762
|
-
/** Custom CSS classes to apply to the widget item */
|
|
5763
|
-
this.customClasses = input('', ...(ngDevMode ? [{ debugName: "customClasses" }] : []));
|
|
5764
|
-
// Outputs
|
|
5765
|
-
/** Emitted when the widget item is clicked */
|
|
5766
|
-
this.onWidgetClick = output();
|
|
5767
|
-
/** Emitted when the pin button is clicked */
|
|
5768
|
-
this.onPinClick = output();
|
|
5769
|
-
}
|
|
5770
|
-
/**
|
|
5771
|
-
* Handle widget item click event
|
|
5772
|
-
*/
|
|
5773
|
-
handleClick(event) {
|
|
5774
|
-
this.onWidgetClick.emit({
|
|
5775
|
-
event,
|
|
5776
|
-
widget: this.widget()
|
|
5777
|
-
});
|
|
5778
|
-
}
|
|
5779
|
-
/**
|
|
5780
|
-
* Handle pin button click event
|
|
5781
|
-
*/
|
|
5782
|
-
handlePinClick(event) {
|
|
5783
|
-
event.stopPropagation(); // Prevent widget click event
|
|
5784
|
-
this.onPinClick.emit({
|
|
5785
|
-
event,
|
|
5786
|
-
widget: this.widget()
|
|
5787
|
-
});
|
|
5788
|
-
}
|
|
5789
|
-
/**
|
|
5790
|
-
* Get the effective icon to display
|
|
5791
|
-
*/
|
|
5792
|
-
getIconClass() {
|
|
5793
|
-
return this.widget().icon || 'fa-light fa-document';
|
|
5794
|
-
}
|
|
5795
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5796
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPWidgetItemComponent, isStandalone: true, selector: "axp-widget-item", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null }, showPinButton: { classPropertyName: "showPinButton", publicName: "showPinButton", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onWidgetClick: "onWidgetClick", onPinClick: "onPinClick" }, ngImport: i0, template: "<div (click)=\"handleClick($event)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\"\n [class.ax-bg-primary-lightest]=\"isSelected()\" [class.ax-text-primary-on-lightest]=\"isSelected()\"\n [class.ax-border-primary-lightest]=\"isSelected()\" [class]=\"customClasses()\">\n\n <!-- Widget Icon -->\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\"\n [class.ax-bg-primary-light]=\"isSelected()\" [class.ax-text-primary-on-light]=\"isSelected()\"\n [class.ax-border-primary-light]=\"isSelected()\" [class.ax-surface]=\"!isSelected()\">\n <i [ngClass]=\"getIconClass()\" class=\"ax-text-lg\"></i>\n </div>\n\n <!-- Widget Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <!-- Widget Title -->\n <div class=\"ax-font-semibold ax-text-sm ax-truncate\" [title]=\"widget().title\">\n {{ widget().title }}\n </div>\n\n <!-- Pin Button -->\n @if (showPinButton()) {\n <div (click)=\"handlePinClick($event)\" class=\"ax-cursor-pointer\">\n @if (widget().isPinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\" title=\"Unpin\"></i>\n } @else {\n <i class=\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\"\n title=\"Pin\"></i>\n }\n </div>\n }\n </div>\n\n <!-- Widget Description -->\n @if (widget().description) {\n <span class=\"ax-text-xs ax-truncate\" [title]=\"widget().description\">\n {{ widget().description }}\n </span>\n }\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5797
|
-
}
|
|
5798
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetItemComponent, decorators: [{
|
|
5799
|
-
type: Component,
|
|
5800
|
-
args: [{ selector: 'axp-widget-item', imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div (click)=\"handleClick($event)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\"\n [class.ax-bg-primary-lightest]=\"isSelected()\" [class.ax-text-primary-on-lightest]=\"isSelected()\"\n [class.ax-border-primary-lightest]=\"isSelected()\" [class]=\"customClasses()\">\n\n <!-- Widget Icon -->\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\"\n [class.ax-bg-primary-light]=\"isSelected()\" [class.ax-text-primary-on-light]=\"isSelected()\"\n [class.ax-border-primary-light]=\"isSelected()\" [class.ax-surface]=\"!isSelected()\">\n <i [ngClass]=\"getIconClass()\" class=\"ax-text-lg\"></i>\n </div>\n\n <!-- Widget Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <!-- Widget Title -->\n <div class=\"ax-font-semibold ax-text-sm ax-truncate\" [title]=\"widget().title\">\n {{ widget().title }}\n </div>\n\n <!-- Pin Button -->\n @if (showPinButton()) {\n <div (click)=\"handlePinClick($event)\" class=\"ax-cursor-pointer\">\n @if (widget().isPinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\" title=\"Unpin\"></i>\n } @else {\n <i class=\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\"\n title=\"Pin\"></i>\n }\n </div>\n }\n </div>\n\n <!-- Widget Description -->\n @if (widget().description) {\n <span class=\"ax-text-xs ax-truncate\" [title]=\"widget().description\">\n {{ widget().description }}\n </span>\n }\n </div>\n</div>" }]
|
|
5801
|
-
}], propDecorators: { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: true }] }], isSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelected", required: false }] }], showPinButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPinButton", required: false }] }], customClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "customClasses", required: false }] }], onWidgetClick: [{ type: i0.Output, args: ["onWidgetClick"] }], onPinClick: [{ type: i0.Output, args: ["onPinClick"] }] } });
|
|
5802
|
-
|
|
5803
5679
|
//#region ---- Component ----
|
|
5804
5680
|
/**
|
|
5805
5681
|
* Compact widget field configurator component
|
|
@@ -6026,6 +5902,151 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImpo
|
|
|
6026
5902
|
], template: "<!-- Widget Selector & Info Container -->\n<div class=\"__widget-container\">\n <!-- Edit Mode: Show Select Box -->\n @if (isEditMode()) {\n <div class=\"__widget-selector\">\n <ax-select-box [(ngModel)]=\"selectedWidgetType\" [dataSource]=\"availableWidgets()\"\n [placeholder]=\"('@general:actions.select.title' | translate | async) ?? ''\" [readonly]=\"readonly()\"\n (onValueChanged)=\"onWidgetTypeChange($event)\" valueField=\"value\" textField=\"text\" [itemTemplate]=\"itemTemplate\"\n [selectedTemplate]=\"selectedTemplate\">\n <ax-search-box></ax-search-box>\n <ax-clear-button></ax-clear-button>\n </ax-select-box>\n </div>\n }\n\n <!-- View Mode: Show Widget Info -->\n @if (!isEditMode()) {\n @if (selectedWidgetType() && currentWidgetConfig(); as config) {\n <div class=\"__widget-info\">\n <!-- Widget Header (Clickable to Edit) -->\n <div class=\"__widget-header\" [class.__editable]=\"!readonly()\" (click)=\"enterEditMode()\">\n <div>\n @if (config.icon) {\n <i [class]=\"config.icon\"></i>\n }\n <div>\n <span>\n {{ config.title }}\n </span>\n @if (config.description) {\n <p>\n {{ config.description }}\n </p>\n }\n </div>\n </div>\n\n <!-- Action Buttons -->\n <div class=\"__action-buttons\" (click)=\"$event.stopPropagation()\">\n <!-- Configure Button -->\n @if (config.hasProperties) {\n <ax-button [disabled]=\"!canConfigure() || readonly()\"\n [title]=\"('@general:actions.configure.title' | translate | async) ?? ''\" look=\"blank\"\n [color]=\"isConfigured() ? 'primary' : 'default'\" size=\"sm\" (onClick)=\"openPropertyViewer()\">\n <ax-icon icon=\"fa-solid fa-cog\"></ax-icon>\n </ax-button>\n }\n <!-- Preview Button -->\n <ax-button [disabled]=\"!canPreview()\" [title]=\"('@general:actions.preview.title' | translate | async) ?? ''\"\n look=\"blank\" size=\"sm\" (onClick)=\"openPreview()\">\n <ax-icon icon=\"fa-solid fa-eye\"></ax-icon>\n </ax-button>\n </div>\n </div>\n\n <!-- No Configuration Needed State -->\n @if (!config.hasProperties) {\n <axp-state-message mode=\"info\" icon=\"fa-solid fa-info-circle\"\n [description]=\"'@general:widgets.widget-configurator.no-configuration-needed'\" variant=\"compact\">\n </axp-state-message>\n }\n </div>\n } @else {\n <!-- Empty State (Clickable to Edit) -->\n <div class=\"__widget-empty\" [class.__editable]=\"!readonly()\" (click)=\"enterEditMode()\">\n <i class=\"fa-solid fa-puzzle-piece\"></i>\n <span>\n {{ ('@general:widgets.widget-configurator.select-widget-type' | translate | async) ?? 'Select a widget type' }}\n </span>\n </div>\n }\n }\n\n <!-- Widget Item Template (Dropdown Items) -->\n <ng-template #itemTemplate let-context>\n @let item = context.data;\n <div class=\"__item-template ax-flex ax-w-full ax-items-center ax-gap-3 ax-p-2\">\n @if (item.icon) {\n <i [class]=\"item.icon + ' ax-text-base ax-w-5 ax-text-center'\"></i>\n }\n <div class=\"ax-flex ax-items-center ax-gap-2 ax-flex-1 ax-min-w-0\">\n <div class=\"ax-text-sm ax-font-medium\">\n {{ item.text }}\n </div>\n @if (item.description) {\n <div class=\"ax-text-xs ax-text-neutral-600\">\n {{ item.description }}\n </div>\n }\n </div>\n </div>\n </ng-template>\n\n <!-- Widget Selected Template (Selected Value Display) -->\n <ng-template #selectedTemplate let-item>\n <div class=\"__selected-template\">\n @if (item?.data?.icon) {\n <i [class]=\"item.data.icon\"></i>\n }\n <span>\n {{ item?.data?.text }}\n </span>\n </div>\n </ng-template>\n</div>", styles: ["axp-widget-field-configurator{display:flex;flex-direction:column}axp-widget-field-configurator .__widget-container{border-radius:.375rem;border-width:1px;padding:1rem;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));transition:all .2s ease}axp-widget-field-configurator .__widget-selector{display:flex;flex-direction:column}axp-widget-field-configurator .__widget-selector ax-select-box{width:100%}axp-widget-field-configurator .__widget-info{display:flex;flex-direction:column;gap:.75rem}axp-widget-field-configurator .__widget-info .__widget-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.375rem .5rem}axp-widget-field-configurator .__widget-info .__widget-header.__editable{cursor:pointer}axp-widget-field-configurator .__widget-info .__widget-header.__editable:hover{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1))}axp-widget-field-configurator .__widget-info .__widget-header:not(.__editable){cursor:not-allowed}axp-widget-field-configurator .__widget-info .__widget-header>div:first-child{display:flex;flex:1 1 0%;align-items:center;gap:.5rem}axp-widget-field-configurator .__widget-info .__widget-header>div:first-child i{font-size:1rem;line-height:1.5rem;flex-shrink:0}axp-widget-field-configurator .__widget-info .__widget-header>div:first-child>div{display:flex;flex:1 1 0%;flex-direction:column;gap:.125rem}axp-widget-field-configurator .__widget-info .__widget-header>div:first-child>div>span{font-size:.875rem;line-height:1.25rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}axp-widget-field-configurator .__widget-info .__widget-header>div:first-child>div>p{margin:0;font-size:.75rem;line-height:1rem;line-height:1.625;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axp-widget-field-configurator .__widget-info .__description{line-height:1.5}axp-widget-field-configurator .__widget-info .__action-buttons{display:flex;align-items:center;gap:.25rem;flex-shrink:0}axp-widget-field-configurator .__widget-empty{display:flex;align-items:center;gap:.5rem;padding:.5rem}axp-widget-field-configurator .__widget-empty.__editable{cursor:pointer}axp-widget-field-configurator .__widget-empty.__editable:hover{border-radius:.375rem;--tw-bg-opacity: 1;background-color:rgba(var(--ax-sys-color-lighter-surface),var(--tw-bg-opacity, 1))}axp-widget-field-configurator .__widget-empty:not(.__editable){cursor:not-allowed}axp-widget-field-configurator .__widget-empty>i{font-size:1rem;line-height:1.5rem;--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity, 1))}axp-widget-field-configurator .__widget-empty>span{font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity, 1))}axp-widget-field-configurator .__item-template>i{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}axp-widget-field-configurator .__item-template>div>div:first-child{flex-shrink:0}axp-widget-field-configurator .__item-template>div>div:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}axp-widget-field-configurator .__selected-template{display:flex;align-items:center;gap:.5rem}axp-widget-field-configurator .__selected-template>i{font-size:.875rem;line-height:1.25rem}axp-widget-field-configurator .__selected-template>span{font-size:.875rem;line-height:1.25rem;font-weight:500}axp-widget-field-configurator :host([readonly]){pointer-events:none;opacity:.7}\n"] }]
|
|
6027
5903
|
}], ctorParameters: () => [], propDecorators: { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: false }] }, { type: i0.Output, args: ["widgetChange"] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], fieldName: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldName", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }] } });
|
|
6028
5904
|
|
|
5905
|
+
/**
|
|
5906
|
+
* Generic widget item component for displaying selectable widgets with icons, titles, and descriptions.
|
|
5907
|
+
* Can be used across different modules for consistent widget display and interaction.
|
|
5908
|
+
*/
|
|
5909
|
+
class AXPWidgetItemComponent {
|
|
5910
|
+
constructor() {
|
|
5911
|
+
// Inputs
|
|
5912
|
+
/** The widget data to display */
|
|
5913
|
+
this.widget = input.required(...(ngDevMode ? [{ debugName: "widget" }] : []));
|
|
5914
|
+
/** Whether this widget is currently selected */
|
|
5915
|
+
this.isSelected = input(false, ...(ngDevMode ? [{ debugName: "isSelected" }] : []));
|
|
5916
|
+
/** Whether to show the pin button */
|
|
5917
|
+
this.showPinButton = input(true, ...(ngDevMode ? [{ debugName: "showPinButton" }] : []));
|
|
5918
|
+
/** Custom CSS classes to apply to the widget item */
|
|
5919
|
+
this.customClasses = input('', ...(ngDevMode ? [{ debugName: "customClasses" }] : []));
|
|
5920
|
+
// Outputs
|
|
5921
|
+
/** Emitted when the widget item is clicked */
|
|
5922
|
+
this.onWidgetClick = output();
|
|
5923
|
+
/** Emitted when the pin button is clicked */
|
|
5924
|
+
this.onPinClick = output();
|
|
5925
|
+
}
|
|
5926
|
+
/**
|
|
5927
|
+
* Handle widget item click event
|
|
5928
|
+
*/
|
|
5929
|
+
handleClick(event) {
|
|
5930
|
+
this.onWidgetClick.emit({
|
|
5931
|
+
event,
|
|
5932
|
+
widget: this.widget()
|
|
5933
|
+
});
|
|
5934
|
+
}
|
|
5935
|
+
/**
|
|
5936
|
+
* Handle pin button click event
|
|
5937
|
+
*/
|
|
5938
|
+
handlePinClick(event) {
|
|
5939
|
+
event.stopPropagation(); // Prevent widget click event
|
|
5940
|
+
this.onPinClick.emit({
|
|
5941
|
+
event,
|
|
5942
|
+
widget: this.widget()
|
|
5943
|
+
});
|
|
5944
|
+
}
|
|
5945
|
+
/**
|
|
5946
|
+
* Get the effective icon to display
|
|
5947
|
+
*/
|
|
5948
|
+
getIconClass() {
|
|
5949
|
+
return this.widget().icon || 'fa-light fa-document';
|
|
5950
|
+
}
|
|
5951
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5952
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.12", type: AXPWidgetItemComponent, isStandalone: true, selector: "axp-widget-item", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null }, isSelected: { classPropertyName: "isSelected", publicName: "isSelected", isSignal: true, isRequired: false, transformFunction: null }, showPinButton: { classPropertyName: "showPinButton", publicName: "showPinButton", isSignal: true, isRequired: false, transformFunction: null }, customClasses: { classPropertyName: "customClasses", publicName: "customClasses", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onWidgetClick: "onWidgetClick", onPinClick: "onPinClick" }, ngImport: i0, template: "<div (click)=\"handleClick($event)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\"\n [class.ax-bg-primary-lightest]=\"isSelected()\" [class.ax-text-primary-on-lightest]=\"isSelected()\"\n [class.ax-border-primary-lightest]=\"isSelected()\" [class]=\"customClasses()\">\n\n <!-- Widget Icon -->\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\"\n [class.ax-bg-primary-light]=\"isSelected()\" [class.ax-text-primary-on-light]=\"isSelected()\"\n [class.ax-border-primary-light]=\"isSelected()\" [class.ax-surface]=\"!isSelected()\">\n <i [ngClass]=\"getIconClass()\" class=\"ax-text-lg\"></i>\n </div>\n\n <!-- Widget Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <!-- Widget Title -->\n <div class=\"ax-font-semibold ax-text-sm ax-truncate\" [title]=\"widget().title\">\n {{ widget().title }}\n </div>\n\n <!-- Pin Button -->\n @if (showPinButton()) {\n <div (click)=\"handlePinClick($event)\" class=\"ax-cursor-pointer\">\n @if (widget().isPinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\" title=\"Unpin\"></i>\n } @else {\n <i class=\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\"\n title=\"Pin\"></i>\n }\n </div>\n }\n </div>\n\n <!-- Widget Description -->\n @if (widget().description) {\n <span class=\"ax-text-xs ax-truncate\" [title]=\"widget().description\">\n {{ widget().description }}\n </span>\n }\n </div>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
5953
|
+
}
|
|
5954
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetItemComponent, decorators: [{
|
|
5955
|
+
type: Component,
|
|
5956
|
+
args: [{ selector: 'axp-widget-item', imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div (click)=\"handleClick($event)\"\n class=\"ax-py-2 ax-px-3 ax-rounded-md ax-flex ax-gap-3 ax-items-center ax-group hover:ax-bg-primary-lightest/65 hover:ax-text-primary-on-lightest ax-cursor-pointer ax-w-full\"\n [class.ax-bg-primary-lightest]=\"isSelected()\" [class.ax-text-primary-on-lightest]=\"isSelected()\"\n [class.ax-border-primary-lightest]=\"isSelected()\" [class]=\"customClasses()\">\n\n <!-- Widget Icon -->\n <div class=\"ax-min-w-10 ax-h-10 ax-flex ax-items-center ax-justify-center ax-rounded-md ax-border group-hover:ax-bg-primary-lighter group-hover:ax-text-primary-on-lighter group-hover:ax-border-primary-lighter\"\n [class.ax-bg-primary-light]=\"isSelected()\" [class.ax-text-primary-on-light]=\"isSelected()\"\n [class.ax-border-primary-light]=\"isSelected()\" [class.ax-surface]=\"!isSelected()\">\n <i [ngClass]=\"getIconClass()\" class=\"ax-text-lg\"></i>\n </div>\n\n <!-- Widget Content -->\n <div class=\"ax-flex ax-flex-col ax-gap-1 ax-flex-1 ax-w-[70%]\">\n <div class=\"ax-flex ax-items-center ax-justify-between ax-gap-2\">\n <!-- Widget Title -->\n <div class=\"ax-font-semibold ax-text-sm ax-truncate\" [title]=\"widget().title\">\n {{ widget().title }}\n </div>\n\n <!-- Pin Button -->\n @if (showPinButton()) {\n <div (click)=\"handlePinClick($event)\" class=\"ax-cursor-pointer\">\n @if (widget().isPinned) {\n <i class=\"fa-solid fa-thumbtack ax-text-sm ax-rotate-45\" title=\"Unpin\"></i>\n } @else {\n <i class=\"fa-light fa-thumbtack ax-text-sm ax-rotate-45 ax-invisible group-hover:ax-visible\"\n title=\"Pin\"></i>\n }\n </div>\n }\n </div>\n\n <!-- Widget Description -->\n @if (widget().description) {\n <span class=\"ax-text-xs ax-truncate\" [title]=\"widget().description\">\n {{ widget().description }}\n </span>\n }\n </div>\n</div>" }]
|
|
5957
|
+
}], propDecorators: { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: true }] }], isSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "isSelected", required: false }] }], showPinButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPinButton", required: false }] }], customClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "customClasses", required: false }] }], onWidgetClick: [{ type: i0.Output, args: ["onWidgetClick"] }], onPinClick: [{ type: i0.Output, args: ["onPinClick"] }] } });
|
|
5958
|
+
|
|
5959
|
+
class AXPWidgetPropertyViewerPopupComponent extends AXBasePageComponent {
|
|
5960
|
+
constructor() {
|
|
5961
|
+
super(...arguments);
|
|
5962
|
+
//#region ---- Inputs ----
|
|
5963
|
+
this.widget = input.required(...(ngDevMode ? [{ debugName: "widget" }] : []));
|
|
5964
|
+
this.mode = input('simple', ...(ngDevMode ? [{ debugName: "mode" }] : []));
|
|
5965
|
+
//#endregion
|
|
5966
|
+
//#region ---- Properties ----
|
|
5967
|
+
this.currentValues = signal({}, ...(ngDevMode ? [{ debugName: "currentValues" }] : []));
|
|
5968
|
+
}
|
|
5969
|
+
//#endregion
|
|
5970
|
+
//#region ---- Event Handlers ----
|
|
5971
|
+
handlePropertyChanged(event) {
|
|
5972
|
+
this.currentValues.set(event.values);
|
|
5973
|
+
}
|
|
5974
|
+
handleCloseClick() {
|
|
5975
|
+
this.close();
|
|
5976
|
+
}
|
|
5977
|
+
handleApplyClick() {
|
|
5978
|
+
this.close({
|
|
5979
|
+
values: this.currentValues(),
|
|
5980
|
+
mode: 'update'
|
|
5981
|
+
});
|
|
5982
|
+
}
|
|
5983
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetPropertyViewerPopupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
5984
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.12", type: AXPWidgetPropertyViewerPopupComponent, isStandalone: true, selector: "axp-widget-property-viewer-popup", inputs: { widget: { classPropertyName: "widget", publicName: "widget", isSignal: true, isRequired: true, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
5985
|
+
<div class="ax-flex ax-flex-col ax-h-full ax-overflow-hidden">
|
|
5986
|
+
<axp-widget-property-viewer
|
|
5987
|
+
[widget]="widget()"
|
|
5988
|
+
[mode]="mode()"
|
|
5989
|
+
(onChanged)="handlePropertyChanged($event)">
|
|
5990
|
+
</axp-widget-property-viewer>
|
|
5991
|
+
</div>
|
|
5992
|
+
|
|
5993
|
+
<ax-footer>
|
|
5994
|
+
<ax-suffix>
|
|
5995
|
+
<ax-button
|
|
5996
|
+
look="solid"
|
|
5997
|
+
[text]="'@general:actions.close.title' | translate | async"
|
|
5998
|
+
(onClick)="handleCloseClick()">
|
|
5999
|
+
</ax-button>
|
|
6000
|
+
<ax-button
|
|
6001
|
+
look="solid"
|
|
6002
|
+
color="primary"
|
|
6003
|
+
[text]="'@general:actions.apply.title' | translate | async"
|
|
6004
|
+
(onClick)="handleApplyClick()">
|
|
6005
|
+
</ax-button>
|
|
6006
|
+
</ax-suffix>
|
|
6007
|
+
</ax-footer>
|
|
6008
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i5$2.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.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: AXTranslationModule }, { kind: "component", type: AXPWidgetPropertyViewerComponent, selector: "axp-widget-property-viewer", inputs: ["widget", "mode"], outputs: ["onChanged"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6009
|
+
}
|
|
6010
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.12", ngImport: i0, type: AXPWidgetPropertyViewerPopupComponent, decorators: [{
|
|
6011
|
+
type: Component,
|
|
6012
|
+
args: [{
|
|
6013
|
+
selector: 'axp-widget-property-viewer-popup',
|
|
6014
|
+
template: `
|
|
6015
|
+
<div class="ax-flex ax-flex-col ax-h-full ax-overflow-hidden">
|
|
6016
|
+
<axp-widget-property-viewer
|
|
6017
|
+
[widget]="widget()"
|
|
6018
|
+
[mode]="mode()"
|
|
6019
|
+
(onChanged)="handlePropertyChanged($event)">
|
|
6020
|
+
</axp-widget-property-viewer>
|
|
6021
|
+
</div>
|
|
6022
|
+
|
|
6023
|
+
<ax-footer>
|
|
6024
|
+
<ax-suffix>
|
|
6025
|
+
<ax-button
|
|
6026
|
+
look="solid"
|
|
6027
|
+
[text]="'@general:actions.close.title' | translate | async"
|
|
6028
|
+
(onClick)="handleCloseClick()">
|
|
6029
|
+
</ax-button>
|
|
6030
|
+
<ax-button
|
|
6031
|
+
look="solid"
|
|
6032
|
+
color="primary"
|
|
6033
|
+
[text]="'@general:actions.apply.title' | translate | async"
|
|
6034
|
+
(onClick)="handleApplyClick()">
|
|
6035
|
+
</ax-button>
|
|
6036
|
+
</ax-suffix>
|
|
6037
|
+
</ax-footer>
|
|
6038
|
+
`,
|
|
6039
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6040
|
+
imports: [
|
|
6041
|
+
CommonModule,
|
|
6042
|
+
AXButtonModule,
|
|
6043
|
+
AXDecoratorModule,
|
|
6044
|
+
AXTranslationModule,
|
|
6045
|
+
AXPWidgetPropertyViewerComponent
|
|
6046
|
+
],
|
|
6047
|
+
}]
|
|
6048
|
+
}], propDecorators: { widget: [{ type: i0.Input, args: [{ isSignal: true, alias: "widget", required: true }] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }] } });
|
|
6049
|
+
|
|
6029
6050
|
/**
|
|
6030
6051
|
* Generated bundle index. Do not edit.
|
|
6031
6052
|
*/
|