@fuentis/phoenix-ui 0.0.9-alpha.630 → 0.0.9-alpha.633
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/fuentis-phoenix-ui.mjs +145 -25
- package/fesm2022/fuentis-phoenix-ui.mjs.map +1 -1
- package/index.d.ts +33 -7
- package/package.json +1 -1
|
@@ -8142,12 +8142,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
8142
8142
|
|
|
8143
8143
|
class QuickPickSidePanelComponent {
|
|
8144
8144
|
drawer;
|
|
8145
|
-
title = 'Default Title';
|
|
8146
|
-
data = [];
|
|
8147
|
-
columns = [];
|
|
8148
|
-
tableConfiguration = {};
|
|
8149
|
-
widthClass = 'w-6';
|
|
8150
|
-
isFullScreen = false;
|
|
8145
|
+
title = input('Default Title', ...(ngDevMode ? [{ debugName: "title" }] : []));
|
|
8146
|
+
data = input([], ...(ngDevMode ? [{ debugName: "data" }] : []));
|
|
8147
|
+
columns = input([], ...(ngDevMode ? [{ debugName: "columns" }] : []));
|
|
8148
|
+
tableConfiguration = input(...(ngDevMode ? [undefined, { debugName: "tableConfiguration" }] : []));
|
|
8149
|
+
widthClass = input('w-6', ...(ngDevMode ? [{ debugName: "widthClass" }] : []));
|
|
8150
|
+
isFullScreen = input(false, ...(ngDevMode ? [{ debugName: "isFullScreen" }] : []));
|
|
8151
|
+
filters = computed(() => {
|
|
8152
|
+
return this.createDynamicFilters(this.data(), this.tableConfiguration()?.filters);
|
|
8153
|
+
}, ...(ngDevMode ? [{ debugName: "filters" }] : []));
|
|
8151
8154
|
_panelVisible = signal(false, ...(ngDevMode ? [{ debugName: "_panelVisible" }] : []));
|
|
8152
8155
|
set panelState(value) {
|
|
8153
8156
|
this._panelVisible.set(value);
|
|
@@ -8170,8 +8173,102 @@ class QuickPickSidePanelComponent {
|
|
|
8170
8173
|
onTableRowClick(row) {
|
|
8171
8174
|
this.onRowClick.emit(row);
|
|
8172
8175
|
}
|
|
8176
|
+
createDynamicFilters(data, fields, defaultFilterType = 'multiselect') {
|
|
8177
|
+
const filters = [];
|
|
8178
|
+
fields?.forEach((field) => {
|
|
8179
|
+
const type = field.type ?? defaultFilterType;
|
|
8180
|
+
if (type === 'boolean-multiselect') {
|
|
8181
|
+
filters.push({
|
|
8182
|
+
...field,
|
|
8183
|
+
type,
|
|
8184
|
+
optionLabel: field.optionLabel ?? 'label',
|
|
8185
|
+
optionValue: field.optionValue ?? 'key',
|
|
8186
|
+
options: Array.isArray(field.options) && field.options.length
|
|
8187
|
+
? field.options
|
|
8188
|
+
: [
|
|
8189
|
+
{ key: false, label: 'ACTION.NO' },
|
|
8190
|
+
{ key: true, label: 'ACTION.YES' },
|
|
8191
|
+
],
|
|
8192
|
+
selected: Array.isArray(field.selected)
|
|
8193
|
+
? field.selected
|
|
8194
|
+
: field.selected != null
|
|
8195
|
+
? [field.selected]
|
|
8196
|
+
: [],
|
|
8197
|
+
});
|
|
8198
|
+
return;
|
|
8199
|
+
}
|
|
8200
|
+
const unique = new Set(); // Holds already added display values for deduplication
|
|
8201
|
+
const options = [];
|
|
8202
|
+
// Helper to add a candidate option if valid and not yet added
|
|
8203
|
+
const addOption = (display) => {
|
|
8204
|
+
if (display === null || display === undefined || display === '')
|
|
8205
|
+
return;
|
|
8206
|
+
const str = this.toDisplay(display);
|
|
8207
|
+
if (!unique.has(str)) {
|
|
8208
|
+
unique.add(str);
|
|
8209
|
+
options.push({ key: str, label: str });
|
|
8210
|
+
}
|
|
8211
|
+
};
|
|
8212
|
+
// Extract values for the current field across all rows
|
|
8213
|
+
data?.forEach((row) => {
|
|
8214
|
+
const value = this.getNestedValue(row, field.key);
|
|
8215
|
+
if (value === null || value === undefined || value === '')
|
|
8216
|
+
return;
|
|
8217
|
+
if (Array.isArray(value)) {
|
|
8218
|
+
// LIST field: process each element individually
|
|
8219
|
+
value.forEach((item) => addOption(this.extractItemNameOrValue(item)));
|
|
8220
|
+
}
|
|
8221
|
+
else if (typeof value === 'object') {
|
|
8222
|
+
// Single object: extract display value
|
|
8223
|
+
addOption(this.extractItemNameOrValue(value));
|
|
8224
|
+
}
|
|
8225
|
+
else {
|
|
8226
|
+
// Primitive value (string, number, boolean)
|
|
8227
|
+
addOption(value);
|
|
8228
|
+
}
|
|
8229
|
+
});
|
|
8230
|
+
// Sort options alphabetically by label
|
|
8231
|
+
options.sort((a, b) => a.label.localeCompare(b.label));
|
|
8232
|
+
// Final filter configuration for this field
|
|
8233
|
+
filters.push({
|
|
8234
|
+
...field,
|
|
8235
|
+
type: field.type ?? defaultFilterType,
|
|
8236
|
+
options,
|
|
8237
|
+
});
|
|
8238
|
+
});
|
|
8239
|
+
return filters;
|
|
8240
|
+
}
|
|
8241
|
+
toDisplay(val) {
|
|
8242
|
+
if (typeof val === 'boolean') {
|
|
8243
|
+
return val ? 'Yes' : 'No';
|
|
8244
|
+
// return val
|
|
8245
|
+
// ? translate.instant('ACTION.YES')
|
|
8246
|
+
// : translate.instant('ACTION.NO');
|
|
8247
|
+
}
|
|
8248
|
+
return String(val);
|
|
8249
|
+
}
|
|
8250
|
+
/**
|
|
8251
|
+
* Extracts a displayable value from an object or primitive.
|
|
8252
|
+
* - Prefers object.name, then object.label, object.value, or object.title.
|
|
8253
|
+
* - Falls back to JSON stringification for objects without display fields.
|
|
8254
|
+
* - Returns primitive values as-is.
|
|
8255
|
+
*/
|
|
8256
|
+
extractItemNameOrValue(item) {
|
|
8257
|
+
if (item === null || item === undefined)
|
|
8258
|
+
return null;
|
|
8259
|
+
if (typeof item === 'object') {
|
|
8260
|
+
const cand = item.name ?? item.label ?? item.value ?? item.title;
|
|
8261
|
+
return cand !== undefined ? cand : JSON.stringify(item);
|
|
8262
|
+
}
|
|
8263
|
+
return item;
|
|
8264
|
+
}
|
|
8265
|
+
getNestedValue(obj, path) {
|
|
8266
|
+
return path.split('.').reduce((curr, key) => {
|
|
8267
|
+
return curr && curr[key] !== undefined ? curr[key] : null;
|
|
8268
|
+
}, obj);
|
|
8269
|
+
}
|
|
8173
8270
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QuickPickSidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
8174
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
8271
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: QuickPickSidePanelComponent, isStandalone: true, selector: "phoenix-quick-pick-sidepanel", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: false, transformFunction: null }, tableConfiguration: { classPropertyName: "tableConfiguration", publicName: "tableConfiguration", isSignal: true, isRequired: false, transformFunction: null }, widthClass: { classPropertyName: "widthClass", publicName: "widthClass", isSignal: true, isRequired: false, transformFunction: null }, isFullScreen: { classPropertyName: "isFullScreen", publicName: "isFullScreen", isSignal: true, isRequired: false, transformFunction: null }, panelState: { classPropertyName: "panelState", publicName: "panelState", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { panelStateChange: "panelStateChange", onRowClick: "onRowClick", lazyLoadData: "lazyLoadData", handlePanelFullScreen: "handlePanelFullScreen" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<p-drawer\n #drawer\n [visible]=\"drawerVisible()\"\n (visibleChange)=\"visibleChange($event)\"\n [header]=\"title() | translate\"\n appendTo=\"body\"\n position=\"right\"\n [styleClass]=\"widthClass()\"\n>\n <!-- Content -->\n @if (tableConfiguration()) {\n <div class=\"px-2\">\n <phoenix-table\n [data]=\"data()\"\n [columns]=\"columns()\"\n [tableConfiguration]=\"tableConfiguration()\"\n [filters]=\"filters()\"\n (rowSelection)=\"onTableRowClick($event)\"\n ></phoenix-table>\n </div>\n }\n</p-drawer>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "component", type: i2$2.Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: TableComponent, selector: "phoenix-table", inputs: ["columns", "selectedColumnsInput", "tableConfiguration", "filters", "data"], outputs: ["actionClick", "rowSelection", "checkBoxSelection", "saveColumns"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "pipe", type: i4$2.TranslatePipe, name: "translate" }] });
|
|
8175
8272
|
}
|
|
8176
8273
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: QuickPickSidePanelComponent, decorators: [{
|
|
8177
8274
|
type: Component,
|
|
@@ -8181,23 +8278,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
8181
8278
|
TableComponent,
|
|
8182
8279
|
TranslateModule,
|
|
8183
8280
|
ButtonModule,
|
|
8184
|
-
], template: "<p-drawer\n #drawer\n [visible]=\"drawerVisible()\"\n (visibleChange)=\"visibleChange($event)\"\n [header]=\"title | translate\"\n appendTo=\"body\"\n position=\"right\"\n [styleClass]=\"widthClass\"\n>\n <!-- Content -->\n
|
|
8281
|
+
], template: "<p-drawer\n #drawer\n [visible]=\"drawerVisible()\"\n (visibleChange)=\"visibleChange($event)\"\n [header]=\"title() | translate\"\n appendTo=\"body\"\n position=\"right\"\n [styleClass]=\"widthClass()\"\n>\n <!-- Content -->\n @if (tableConfiguration()) {\n <div class=\"px-2\">\n <phoenix-table\n [data]=\"data()\"\n [columns]=\"columns()\"\n [tableConfiguration]=\"tableConfiguration()\"\n [filters]=\"filters()\"\n (rowSelection)=\"onTableRowClick($event)\"\n ></phoenix-table>\n </div>\n }\n</p-drawer>\n" }]
|
|
8185
8282
|
}], propDecorators: { drawer: [{
|
|
8186
8283
|
type: ViewChild,
|
|
8187
8284
|
args: ['drawer']
|
|
8188
|
-
}], title: [{
|
|
8189
|
-
type: Input
|
|
8190
|
-
}], data: [{
|
|
8191
|
-
type: Input
|
|
8192
|
-
}], columns: [{
|
|
8193
|
-
type: Input
|
|
8194
|
-
}], tableConfiguration: [{
|
|
8195
|
-
type: Input
|
|
8196
|
-
}], widthClass: [{
|
|
8197
|
-
type: Input
|
|
8198
|
-
}], isFullScreen: [{
|
|
8199
|
-
type: Input
|
|
8200
|
-
}], panelState: [{
|
|
8285
|
+
}], title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], tableConfiguration: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableConfiguration", required: false }] }], widthClass: [{ type: i0.Input, args: [{ isSignal: true, alias: "widthClass", required: false }] }], isFullScreen: [{ type: i0.Input, args: [{ isSignal: true, alias: "isFullScreen", required: false }] }], panelState: [{
|
|
8201
8286
|
type: Input
|
|
8202
8287
|
}], panelStateChange: [{
|
|
8203
8288
|
type: Output
|
|
@@ -10178,16 +10263,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
10178
10263
|
type: Input
|
|
10179
10264
|
}] } });
|
|
10180
10265
|
|
|
10266
|
+
/**
|
|
10267
|
+
* Splits a flat list of fields into row chunks for grid rendering.
|
|
10268
|
+
* A field with `style.newRow === true` always starts a fresh row,
|
|
10269
|
+
* regardless of how much space is left in the current row.
|
|
10270
|
+
* Fields without `newRow` keep flowing into the current row (existing
|
|
10271
|
+
* PrimeFlex wrap-by-colWidth behavior is preserved within each chunk).
|
|
10272
|
+
*/
|
|
10273
|
+
function splitControlsIntoRows(controls) {
|
|
10274
|
+
if (!controls || !controls.length)
|
|
10275
|
+
return [];
|
|
10276
|
+
const rows = [];
|
|
10277
|
+
let current = [];
|
|
10278
|
+
for (const field of controls) {
|
|
10279
|
+
if (field?.style?.newRow && current.length) {
|
|
10280
|
+
rows.push(current);
|
|
10281
|
+
current = [];
|
|
10282
|
+
}
|
|
10283
|
+
current.push(field);
|
|
10284
|
+
}
|
|
10285
|
+
if (current.length)
|
|
10286
|
+
rows.push(current);
|
|
10287
|
+
return rows;
|
|
10288
|
+
}
|
|
10289
|
+
|
|
10181
10290
|
class MetaFormGroupV2Component {
|
|
10182
10291
|
group;
|
|
10183
10292
|
form;
|
|
10184
10293
|
readOnly = false;
|
|
10294
|
+
/** Group's fields split into row chunks, honoring `style.newRow` hard breaks. */
|
|
10295
|
+
get rows() {
|
|
10296
|
+
return splitControlsIntoRows(this.group?.ctrl);
|
|
10297
|
+
}
|
|
10185
10298
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MetaFormGroupV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10186
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MetaFormGroupV2Component, isStandalone: true, selector: "phoenix-meta-form-group-v2", inputs: { group: "group", form: "form", readOnly: "readOnly" }, ngImport: i0, template: "<div class=\"pho-group\" [formGroup]=\"form\">\n <div class=\"grid\">\n
|
|
10299
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MetaFormGroupV2Component, isStandalone: true, selector: "phoenix-meta-form-group-v2", inputs: { group: "group", form: "form", readOnly: "readOnly" }, ngImport: i0, template: "<div class=\"pho-group\" [formGroup]=\"form\">\n @for (row of rows; track $index) {\n <div class=\"grid\">\n @for (f of row; track f?.configuration?.key) {\n <div [ngClass]=\"f.style.colWidth || 'col-12 md:col-6'\">\n <phoenix-meta-form-field-v2 [field]=\"f\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-field-v2>\n </div>\n }\n </div>\n }\n\n</div>", styles: [".pho-group{margin-bottom:16px}.pho-group__title{font-weight:700;margin-bottom:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: MetaFormFieldV2Component, selector: "phoenix-meta-form-field-v2", inputs: ["field", "form", "readOnly", "disableForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10187
10300
|
}
|
|
10188
10301
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MetaFormGroupV2Component, decorators: [{
|
|
10189
10302
|
type: Component,
|
|
10190
|
-
args: [{ selector: 'phoenix-meta-form-group-v2', standalone: true, imports: [CommonModule, ReactiveFormsModule, MetaFormFieldV2Component], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"pho-group\" [formGroup]=\"form\">\n <div class=\"grid\">\n
|
|
10303
|
+
args: [{ selector: 'phoenix-meta-form-group-v2', standalone: true, imports: [CommonModule, ReactiveFormsModule, MetaFormFieldV2Component], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"pho-group\" [formGroup]=\"form\">\n @for (row of rows; track $index) {\n <div class=\"grid\">\n @for (f of row; track f?.configuration?.key) {\n <div [ngClass]=\"f.style.colWidth || 'col-12 md:col-6'\">\n <phoenix-meta-form-field-v2 [field]=\"f\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-field-v2>\n </div>\n }\n </div>\n }\n\n</div>", styles: [".pho-group{margin-bottom:16px}.pho-group__title{font-weight:700;margin-bottom:8px}\n"] }]
|
|
10191
10304
|
}], propDecorators: { group: [{
|
|
10192
10305
|
type: Input,
|
|
10193
10306
|
args: [{ required: true }]
|
|
@@ -10800,6 +10913,13 @@ class MetaFormV2Component {
|
|
|
10800
10913
|
get flatControls() {
|
|
10801
10914
|
return this.config?.controls ?? [];
|
|
10802
10915
|
}
|
|
10916
|
+
/**
|
|
10917
|
+
* Flat schema split into row chunks, honoring `style.newRow` hard breaks.
|
|
10918
|
+
* Used by the non-grouped grid template.
|
|
10919
|
+
*/
|
|
10920
|
+
get controlRows() {
|
|
10921
|
+
return splitControlsIntoRows(this.flatControls);
|
|
10922
|
+
}
|
|
10803
10923
|
/** TrackBy for group rendering */
|
|
10804
10924
|
groupTrack(g, idx) {
|
|
10805
10925
|
return g?.id ?? idx;
|
|
@@ -10907,7 +11027,7 @@ class MetaFormV2Component {
|
|
|
10907
11027
|
this.depCleanup?.();
|
|
10908
11028
|
}
|
|
10909
11029
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MetaFormV2Component, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
10910
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MetaFormV2Component, isStandalone: true, selector: "phoenix-meta-form-v2", inputs: { form: "form", config: "config", readOnly: "readOnly", contentStyle: "contentStyle", contentClass: "contentClass" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"form\">\n @if (hasControls) {\n\n @if (isGrouped) {\n <p-accordion\n [multiple]=\"true\"\n [value]=\"expandedGroupIds\"\n (valueChange)=\"onAccordionValueChange($event)\"\n >\n @for (g of groupedControls; track groupTrack(g, $index)) {\n <p-accordion-panel [value]=\"panelValue(g)\">\n <p-accordion-header>\n\n <!-- plus/minus toggle icon -->\n <ng-template #toggleicon let-active=\"active\">\n @if (active) {\n <i class=\"pi pi-minus-circle\"></i>\n } @else {\n <i class=\"pi pi-plus-circle\"></i>\n }\n </ng-template>\n\n {{ g?.groupName | translate }}\n </p-accordion-header>\n \n <p-accordion-content>\n <div [ngStyle]=\"contentStyle\" [ngClass]=\"contentClass\">\n <phoenix-meta-form-group-v2 [group]=\"g\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-group-v2>\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n }\n </p-accordion>\n\n } @else {\n <div class=\"grid\">\n
|
|
11030
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.16", type: MetaFormV2Component, isStandalone: true, selector: "phoenix-meta-form-v2", inputs: { form: "form", config: "config", readOnly: "readOnly", contentStyle: "contentStyle", contentClass: "contentClass" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"form\">\n @if (hasControls) {\n\n @if (isGrouped) {\n <p-accordion\n [multiple]=\"true\"\n [value]=\"expandedGroupIds\"\n (valueChange)=\"onAccordionValueChange($event)\"\n >\n @for (g of groupedControls; track groupTrack(g, $index)) {\n <p-accordion-panel [value]=\"panelValue(g)\">\n <p-accordion-header>\n\n <!-- plus/minus toggle icon -->\n <ng-template #toggleicon let-active=\"active\">\n @if (active) {\n <i class=\"pi pi-minus-circle\"></i>\n } @else {\n <i class=\"pi pi-plus-circle\"></i>\n }\n </ng-template>\n\n {{ g?.groupName | translate }}\n </p-accordion-header>\n \n <p-accordion-content>\n <div [ngStyle]=\"contentStyle\" [ngClass]=\"contentClass\">\n <phoenix-meta-form-group-v2 [group]=\"g\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-group-v2>\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n }\n </p-accordion>\n\n } @else {\n @for (row of controlRows; track $index) {\n <div class=\"grid\">\n @for (f of row; track f.configuration.key) {\n <div [ngClass]=\"f.style.colWidth ?? 'col-12 md:col-6'\">\n <phoenix-meta-form-field-v2 [field]=\"f\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-field-v2>\n </div>\n }\n </div>\n }\n }\n\n }\n</div>", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: AccordionModule }, { kind: "component", type: i3$1.Accordion, selector: "p-accordion", inputs: ["value", "multiple", "styleClass", "expandIcon", "collapseIcon", "selectOnFocus", "transitionOptions"], outputs: ["valueChange", "onClose", "onOpen"] }, { kind: "component", type: i3$1.AccordionPanel, selector: "p-accordion-panel, p-accordionpanel", inputs: ["value", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: i3$1.AccordionHeader, selector: "p-accordion-header, p-accordionheader" }, { kind: "component", type: i3$1.AccordionContent, selector: "p-accordion-content, p-accordioncontent" }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: MetaFormFieldV2Component, selector: "phoenix-meta-form-field-v2", inputs: ["field", "form", "readOnly", "disableForm"] }, { kind: "component", type: MetaFormGroupV2Component, selector: "phoenix-meta-form-group-v2", inputs: ["group", "form", "readOnly"] }, { kind: "pipe", type: i4$2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10911
11031
|
}
|
|
10912
11032
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImport: i0, type: MetaFormV2Component, decorators: [{
|
|
10913
11033
|
type: Component,
|
|
@@ -10918,7 +11038,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.16", ngImpo
|
|
|
10918
11038
|
TranslateModule,
|
|
10919
11039
|
MetaFormFieldV2Component,
|
|
10920
11040
|
MetaFormGroupV2Component,
|
|
10921
|
-
], template: "<div [formGroup]=\"form\">\n @if (hasControls) {\n\n @if (isGrouped) {\n <p-accordion\n [multiple]=\"true\"\n [value]=\"expandedGroupIds\"\n (valueChange)=\"onAccordionValueChange($event)\"\n >\n @for (g of groupedControls; track groupTrack(g, $index)) {\n <p-accordion-panel [value]=\"panelValue(g)\">\n <p-accordion-header>\n\n <!-- plus/minus toggle icon -->\n <ng-template #toggleicon let-active=\"active\">\n @if (active) {\n <i class=\"pi pi-minus-circle\"></i>\n } @else {\n <i class=\"pi pi-plus-circle\"></i>\n }\n </ng-template>\n\n {{ g?.groupName | translate }}\n </p-accordion-header>\n \n <p-accordion-content>\n <div [ngStyle]=\"contentStyle\" [ngClass]=\"contentClass\">\n <phoenix-meta-form-group-v2 [group]=\"g\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-group-v2>\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n }\n </p-accordion>\n\n } @else {\n <div class=\"grid\">\n
|
|
11041
|
+
], template: "<div [formGroup]=\"form\">\n @if (hasControls) {\n\n @if (isGrouped) {\n <p-accordion\n [multiple]=\"true\"\n [value]=\"expandedGroupIds\"\n (valueChange)=\"onAccordionValueChange($event)\"\n >\n @for (g of groupedControls; track groupTrack(g, $index)) {\n <p-accordion-panel [value]=\"panelValue(g)\">\n <p-accordion-header>\n\n <!-- plus/minus toggle icon -->\n <ng-template #toggleicon let-active=\"active\">\n @if (active) {\n <i class=\"pi pi-minus-circle\"></i>\n } @else {\n <i class=\"pi pi-plus-circle\"></i>\n }\n </ng-template>\n\n {{ g?.groupName | translate }}\n </p-accordion-header>\n \n <p-accordion-content>\n <div [ngStyle]=\"contentStyle\" [ngClass]=\"contentClass\">\n <phoenix-meta-form-group-v2 [group]=\"g\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-group-v2>\n </div>\n </p-accordion-content>\n </p-accordion-panel>\n }\n </p-accordion>\n\n } @else {\n @for (row of controlRows; track $index) {\n <div class=\"grid\">\n @for (f of row; track f.configuration.key) {\n <div [ngClass]=\"f.style.colWidth ?? 'col-12 md:col-6'\">\n <phoenix-meta-form-field-v2 [field]=\"f\" [form]=\"form\" [readOnly]=\"readOnly\"></phoenix-meta-form-field-v2>\n </div>\n }\n </div>\n }\n }\n\n }\n</div>", styles: [":host{display:block}\n"] }]
|
|
10922
11042
|
}], propDecorators: { form: [{
|
|
10923
11043
|
type: Input,
|
|
10924
11044
|
args: [{ required: true }]
|