@myrtex-org/form 1.1.41 → 1.1.43
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/esm2022/lib/modules/object-form/components/elements/input/table/helpers/get-row-model.helper.mjs +3 -2
- package/esm2022/lib/modules/object-form/components/elements/input/table/input-table.component.mjs +153 -29
- package/esm2022/lib/modules/object-form/models/value.model.mjs +6 -2
- package/fesm2022/myrtex-org-form.mjs +159 -30
- package/fesm2022/myrtex-org-form.mjs.map +1 -1
- package/lib/modules/object-form/components/elements/input/table/input-table.component.d.ts +11 -2
- package/lib/modules/object-form/models/value.model.d.ts +13 -2
- package/package.json +1 -1
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
1
|
+
export var TableItemType;
|
|
2
|
+
(function (TableItemType) {
|
|
3
|
+
TableItemType[TableItemType["Row"] = 1] = "Row";
|
|
4
|
+
TableItemType[TableItemType["Group"] = 2] = "Group";
|
|
5
|
+
})(TableItemType || (TableItemType = {}));
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0ZXgtZm9ybS9zcmMvbGliL21vZHVsZXMvb2JqZWN0LWZvcm0vbW9kZWxzL3ZhbHVlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDdkIsK0NBQU8sQ0FBQTtJQUNQLG1EQUFTLENBQUE7QUFDWCxDQUFDLEVBSFcsYUFBYSxLQUFiLGFBQWEsUUFHeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRUeXBlLCBWYWx1ZVR5cGUgfSBmcm9tICcuLi8uLi9zaGFyZWQtZm9ybS9lbnVtcyc7XHJcblxyXG5leHBvcnQgZW51bSBUYWJsZUl0ZW1UeXBlIHtcclxuICBSb3cgPSAxLFxyXG4gIEdyb3VwID0gMlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZhbHVlTW9kZWxCYXNlIHtcclxuICBzeXNOYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogQ29tcG9uZW50VHlwZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWN0aW9uVmFsdWVNb2RlbCBleHRlbmRzIFZhbHVlTW9kZWxCYXNlIHtcclxuICB2YWx1ZXM6IFZhbHVlTW9kZWxbXTtcclxuICBwZXJjZW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR3JvdXBWYWx1ZU1vZGVsIGV4dGVuZHMgVmFsdWVNb2RlbEJhc2Uge1xyXG4gIHZhbHVlczogVmFsdWVNb2RlbFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlSXRlbSB7XHJcbiAgaXRlbVR5cGU6IFRhYmxlSXRlbVR5cGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVWYWx1ZU1vZGVsIGV4dGVuZHMgVmFsdWVNb2RlbEJhc2Uge1xyXG4gIGRhdGE6IFRhYmxlSXRlbVtdO1xyXG4gIHRvdGFsczogQ29tcG9uZW50VmFsdWVNb2RlbFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlR3JvdXBNb2RlbCBleHRlbmRzIFRhYmxlSXRlbSB7XHJcbiAgZGF0YTogVGFibGVJdGVtW107XHJcbiAgdG90YWxzOiBDb21wb25lbnRWYWx1ZU1vZGVsW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVSb3dNb2RlbCBleHRlbmRzIFRhYmxlSXRlbSB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBkYXRhOiBDb21wb25lbnRWYWx1ZU1vZGVsW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50VmFsdWVNb2RlbCBleHRlbmRzIFZhbHVlTW9kZWxCYXNlIHtcclxuICB2YWx1ZVR5cGU6IFZhbHVlVHlwZTtcclxuICB2YWx1ZT86IGFueTtcclxuICBkaXNwbGF5VmFsdWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFZhbHVlTW9kZWwgPSBHcm91cFZhbHVlTW9kZWwgfCBUYWJsZVZhbHVlTW9kZWwgfCBDb21wb25lbnRWYWx1ZU1vZGVsXHJcblxyXG4iXX0=
|
|
@@ -2114,6 +2114,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
2114
2114
|
args: [{ selector: 'app-input-radio-group', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-radio-group-content\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <mrx-radio-group\r\n [(ngModel)]=\"value\"\r\n [fields]=\"autosaveFields\"\r\n [items]=\"list\"\r\n [invalid]=\"getInvalid\"\r\n [disabled]=\"disabled\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n (modelChange)=\"updateValue($event)\"\r\n ></mrx-radio-group>\r\n </div>\r\n}\r\n" }]
|
|
2115
2115
|
}] });
|
|
2116
2116
|
|
|
2117
|
+
var TableItemType;
|
|
2118
|
+
(function (TableItemType) {
|
|
2119
|
+
TableItemType[TableItemType["Row"] = 1] = "Row";
|
|
2120
|
+
TableItemType[TableItemType["Group"] = 2] = "Group";
|
|
2121
|
+
})(TableItemType || (TableItemType = {}));
|
|
2122
|
+
|
|
2117
2123
|
class FormDispenserModal {
|
|
2118
2124
|
constructor() {
|
|
2119
2125
|
this._store = inject(Store);
|
|
@@ -2334,7 +2340,7 @@ const getRowModel = (model) => {
|
|
|
2334
2340
|
});
|
|
2335
2341
|
return values;
|
|
2336
2342
|
};
|
|
2337
|
-
return { id: v4(), data: getValuesFromModel(model) };
|
|
2343
|
+
return { id: v4(), data: getValuesFromModel(model), itemType: TableItemType.Row };
|
|
2338
2344
|
};
|
|
2339
2345
|
|
|
2340
2346
|
class InputTableComponent {
|
|
@@ -2349,6 +2355,7 @@ class InputTableComponent {
|
|
|
2349
2355
|
this._subscriptions$ = [];
|
|
2350
2356
|
this._isCheckRequired = false;
|
|
2351
2357
|
this._canEditObject = false;
|
|
2358
|
+
this._rows = [];
|
|
2352
2359
|
this.dataSource = [];
|
|
2353
2360
|
this.columns = [];
|
|
2354
2361
|
this.values = [];
|
|
@@ -2357,14 +2364,14 @@ class InputTableComponent {
|
|
|
2357
2364
|
set data(settings) {
|
|
2358
2365
|
this.settings = settings;
|
|
2359
2366
|
this.model = { sysName: settings.sysName, type: settings.type, data: [], totals: [] };
|
|
2367
|
+
this._rows = [];
|
|
2360
2368
|
this._detector.detectChanges();
|
|
2361
2369
|
this._initColumns(this.settings.components);
|
|
2362
2370
|
}
|
|
2363
2371
|
get rowsCount() {
|
|
2364
|
-
return this.
|
|
2372
|
+
return this._rows.length || 0;
|
|
2365
2373
|
}
|
|
2366
2374
|
get hasAnyTotal() {
|
|
2367
|
-
// Проверяем все компоненты и их вложенные компоненты на наличие showTotal
|
|
2368
2375
|
return this.settings.components.some(c => this.showTotal(c) || c.components?.some(inner => this.showTotal(inner)));
|
|
2369
2376
|
}
|
|
2370
2377
|
get isRedNoData() {
|
|
@@ -2373,12 +2380,6 @@ class InputTableComponent {
|
|
|
2373
2380
|
ngOnInit() {
|
|
2374
2381
|
this._initModel();
|
|
2375
2382
|
this._changeSubject$.pipe(debounceTime(700)).subscribe(model => {
|
|
2376
|
-
console.log('Данные таблицы обновлены и готовы к отправке:', model);
|
|
2377
|
-
console.log('Чистые строки (data):', model.data);
|
|
2378
|
-
console.log('Данные для отображения в Grid:', this.dataSource);
|
|
2379
|
-
console.log('Grid Instance:', this.dataGrid.instance);
|
|
2380
|
-
window.grid = this.dataGrid.instance;
|
|
2381
|
-
console.log('Экземпляр привязан к window.grid');
|
|
2382
2383
|
this._store.dispatch(updateValues({ value: model }));
|
|
2383
2384
|
});
|
|
2384
2385
|
this._subscriptions$.push(this._store.select(selectIsCheckRequired).subscribe(result => {
|
|
@@ -2395,7 +2396,8 @@ class InputTableComponent {
|
|
|
2395
2396
|
const cloneResult = structuredClone(result);
|
|
2396
2397
|
if (cloneResult && !Array.isArray(cloneResult) && this.model.data !== cloneResult.data) {
|
|
2397
2398
|
this.model = structuredClone(cloneResult);
|
|
2398
|
-
this.
|
|
2399
|
+
this._rows = this._extractRows(this.model.data);
|
|
2400
|
+
this._initDataSource(this._rows);
|
|
2399
2401
|
}
|
|
2400
2402
|
}));
|
|
2401
2403
|
}
|
|
@@ -2404,6 +2406,9 @@ class InputTableComponent {
|
|
|
2404
2406
|
this._subscriptions$.forEach((subscription) => subscription.unsubscribe());
|
|
2405
2407
|
}
|
|
2406
2408
|
createRow() {
|
|
2409
|
+
if (this.disabled) {
|
|
2410
|
+
return;
|
|
2411
|
+
}
|
|
2407
2412
|
this._modalService.open(InputTableModalComponent, {
|
|
2408
2413
|
title: 'Создание строки',
|
|
2409
2414
|
okText: 'Создать',
|
|
@@ -2412,25 +2417,28 @@ class InputTableComponent {
|
|
|
2412
2417
|
isCheckRequired: this._isCheckRequired
|
|
2413
2418
|
}).afterClosed().subscribe(resolve => {
|
|
2414
2419
|
if (resolve.result) {
|
|
2415
|
-
this.
|
|
2416
|
-
this._initDataSource(this.
|
|
2417
|
-
this._changeSubject$.next(
|
|
2420
|
+
this._rows = [...structuredClone(this._rows), resolve.rowModel];
|
|
2421
|
+
this._initDataSource(this._rows);
|
|
2422
|
+
this._changeSubject$.next(this._buildTableValueModel());
|
|
2418
2423
|
}
|
|
2419
2424
|
});
|
|
2420
2425
|
}
|
|
2421
2426
|
deleteRow(event) {
|
|
2422
|
-
|
|
2427
|
+
if (this.disabled) {
|
|
2428
|
+
return;
|
|
2429
|
+
}
|
|
2430
|
+
const findRow = this._rows.find(item => item.id === event.row.data.id);
|
|
2423
2431
|
if (findRow) {
|
|
2424
|
-
this.
|
|
2425
|
-
this._initDataSource(this.
|
|
2426
|
-
this._changeSubject$.next(this.
|
|
2432
|
+
this._rows = this._rows.filter(item => item.id !== event.row.data.id);
|
|
2433
|
+
this._initDataSource(this._rows);
|
|
2434
|
+
this._changeSubject$.next(this._buildTableValueModel());
|
|
2427
2435
|
}
|
|
2428
2436
|
}
|
|
2429
2437
|
get disabled() {
|
|
2430
2438
|
return !this._canEditObject;
|
|
2431
2439
|
}
|
|
2432
2440
|
editRow(event) {
|
|
2433
|
-
const findRow = this.
|
|
2441
|
+
const findRow = this._rows.find(item => item.id === event.row.data.id);
|
|
2434
2442
|
if (findRow) {
|
|
2435
2443
|
this._modalService.open(InputTableModalComponent, {
|
|
2436
2444
|
title: 'Редактирование строки',
|
|
@@ -2439,12 +2447,13 @@ class InputTableComponent {
|
|
|
2439
2447
|
rowModel: findRow
|
|
2440
2448
|
}).afterClosed().subscribe(resolve => {
|
|
2441
2449
|
if (resolve.result) {
|
|
2442
|
-
const
|
|
2443
|
-
const
|
|
2444
|
-
if (
|
|
2445
|
-
|
|
2446
|
-
this.
|
|
2447
|
-
this.
|
|
2450
|
+
const cloneRows = structuredClone(this._rows);
|
|
2451
|
+
const editableRow = cloneRows.find(row => row.id === resolve.rowModel.id);
|
|
2452
|
+
if (editableRow) {
|
|
2453
|
+
editableRow.data = resolve.rowModel.data;
|
|
2454
|
+
this._rows = cloneRows;
|
|
2455
|
+
this._initDataSource(this._rows);
|
|
2456
|
+
this._changeSubject$.next(this._buildTableValueModel());
|
|
2448
2457
|
}
|
|
2449
2458
|
}
|
|
2450
2459
|
});
|
|
@@ -2481,7 +2490,7 @@ class InputTableComponent {
|
|
|
2481
2490
|
return false;
|
|
2482
2491
|
}
|
|
2483
2492
|
isTotalColumn(component) {
|
|
2484
|
-
return component.options
|
|
2493
|
+
return component.options.inTotals;
|
|
2485
2494
|
}
|
|
2486
2495
|
_initModel() {
|
|
2487
2496
|
this.model = {
|
|
@@ -2490,6 +2499,7 @@ class InputTableComponent {
|
|
|
2490
2499
|
data: [],
|
|
2491
2500
|
totals: []
|
|
2492
2501
|
};
|
|
2502
|
+
this._rows = [];
|
|
2493
2503
|
}
|
|
2494
2504
|
_initDataSource(data) {
|
|
2495
2505
|
this.dataSource = data.map((item) => {
|
|
@@ -2501,7 +2511,9 @@ class InputTableComponent {
|
|
|
2501
2511
|
return newDataItem;
|
|
2502
2512
|
});
|
|
2503
2513
|
this._detector.detectChanges();
|
|
2504
|
-
this.dataGrid
|
|
2514
|
+
if (this.dataGrid?.instance) {
|
|
2515
|
+
this.dataGrid.instance.refresh();
|
|
2516
|
+
}
|
|
2505
2517
|
}
|
|
2506
2518
|
_initColumns(components) {
|
|
2507
2519
|
this.columns = components.map(c => this._transformColumn(structuredClone(c)));
|
|
@@ -2521,7 +2533,9 @@ class InputTableComponent {
|
|
|
2521
2533
|
},
|
|
2522
2534
|
],
|
|
2523
2535
|
});
|
|
2524
|
-
this.dataGrid
|
|
2536
|
+
if (this.dataGrid?.instance) {
|
|
2537
|
+
this.dataGrid.instance.repaint();
|
|
2538
|
+
}
|
|
2525
2539
|
this._detector.detectChanges();
|
|
2526
2540
|
}
|
|
2527
2541
|
_transformColumn(component) {
|
|
@@ -2601,12 +2615,127 @@ class InputTableComponent {
|
|
|
2601
2615
|
});
|
|
2602
2616
|
});
|
|
2603
2617
|
}
|
|
2618
|
+
_buildTableValueModel() {
|
|
2619
|
+
const groupedData = this._buildGroupedItems(this._rows, this.settings.options.groups || [], 0);
|
|
2620
|
+
const totals = this._calculateTotals(this._rows);
|
|
2621
|
+
this.model = {
|
|
2622
|
+
sysName: this.settings.sysName,
|
|
2623
|
+
type: this.settings.type,
|
|
2624
|
+
data: groupedData,
|
|
2625
|
+
totals
|
|
2626
|
+
};
|
|
2627
|
+
return structuredClone(this.model);
|
|
2628
|
+
}
|
|
2629
|
+
_buildGroupedItems(rows, groupFields, level) {
|
|
2630
|
+
if (!groupFields.length || level >= groupFields.length) {
|
|
2631
|
+
return rows.map(row => ({ ...row, itemType: row.itemType ?? TableItemType.Row }));
|
|
2632
|
+
}
|
|
2633
|
+
const groupField = groupFields[level];
|
|
2634
|
+
const groups = new Map();
|
|
2635
|
+
for (const row of rows) {
|
|
2636
|
+
const fieldValue = row.data.find(x => x.sysName === groupField)?.value ?? null;
|
|
2637
|
+
const key = JSON.stringify(fieldValue);
|
|
2638
|
+
const existing = groups.get(key) ?? {
|
|
2639
|
+
rows: [],
|
|
2640
|
+
groupValueSysName: this._getGroupValueSysName(fieldValue, groupField)
|
|
2641
|
+
};
|
|
2642
|
+
existing.rows.push(row);
|
|
2643
|
+
groups.set(key, existing);
|
|
2644
|
+
}
|
|
2645
|
+
const result = [];
|
|
2646
|
+
for (const groupItem of groups.values()) {
|
|
2647
|
+
const nestedData = this._buildGroupedItems(groupItem.rows, groupFields, level + 1);
|
|
2648
|
+
const groupModel = {
|
|
2649
|
+
itemType: TableItemType.Group,
|
|
2650
|
+
data: nestedData,
|
|
2651
|
+
totals: this._calculateTotals(groupItem.rows, groupItem.groupValueSysName)
|
|
2652
|
+
};
|
|
2653
|
+
result.push(groupModel);
|
|
2654
|
+
}
|
|
2655
|
+
return result;
|
|
2656
|
+
}
|
|
2657
|
+
_calculateTotals(rows, groupFieldSysName) {
|
|
2658
|
+
const totalColumns = this._getTotalColumns(this.settings.components);
|
|
2659
|
+
return totalColumns.map(component => {
|
|
2660
|
+
const sum = rows.reduce((acc, row) => {
|
|
2661
|
+
const value = row.data.find(x => x.sysName === component.sysName)?.value;
|
|
2662
|
+
const numericValue = typeof value === 'number' ? value : Number(value);
|
|
2663
|
+
return Number.isFinite(numericValue) ? acc + numericValue : acc;
|
|
2664
|
+
}, 0);
|
|
2665
|
+
return {
|
|
2666
|
+
sysName: this._getTotalSysName(component.sysName, groupFieldSysName),
|
|
2667
|
+
type: component.type,
|
|
2668
|
+
valueType: component.valueType,
|
|
2669
|
+
value: sum
|
|
2670
|
+
};
|
|
2671
|
+
});
|
|
2672
|
+
}
|
|
2673
|
+
_getTotalSysName(columnSysName, groupFieldSysName) {
|
|
2674
|
+
if (groupFieldSysName) {
|
|
2675
|
+
return `${columnSysName}_${groupFieldSysName}_total`;
|
|
2676
|
+
}
|
|
2677
|
+
return `${columnSysName}_total`;
|
|
2678
|
+
}
|
|
2679
|
+
_getGroupValueSysName(fieldValue, fallbackSysName) {
|
|
2680
|
+
if (Array.isArray(fieldValue) && fieldValue.length) {
|
|
2681
|
+
const firstValue = fieldValue[0];
|
|
2682
|
+
if (typeof firstValue === 'string' || typeof firstValue === 'number' || typeof firstValue === 'boolean') {
|
|
2683
|
+
return String(firstValue);
|
|
2684
|
+
}
|
|
2685
|
+
}
|
|
2686
|
+
if (fieldValue && typeof fieldValue === 'object') {
|
|
2687
|
+
if (typeof fieldValue.value === 'string' || typeof fieldValue.value === 'number' || typeof fieldValue.value === 'boolean') {
|
|
2688
|
+
return String(fieldValue.value);
|
|
2689
|
+
}
|
|
2690
|
+
if (typeof fieldValue.sysName === 'string' && fieldValue.sysName) {
|
|
2691
|
+
return fieldValue.sysName;
|
|
2692
|
+
}
|
|
2693
|
+
}
|
|
2694
|
+
if (typeof fieldValue === 'string' || typeof fieldValue === 'number' || typeof fieldValue === 'boolean') {
|
|
2695
|
+
return String(fieldValue);
|
|
2696
|
+
}
|
|
2697
|
+
return fallbackSysName;
|
|
2698
|
+
}
|
|
2699
|
+
_getTotalColumns(components) {
|
|
2700
|
+
const result = [];
|
|
2701
|
+
for (const component of components) {
|
|
2702
|
+
if (component.type === ComponentType.InputNumber && this.showTotal(component)) {
|
|
2703
|
+
result.push(component);
|
|
2704
|
+
}
|
|
2705
|
+
if (component.components?.length) {
|
|
2706
|
+
result.push(...this._getTotalColumns(component.components));
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
return result;
|
|
2710
|
+
}
|
|
2711
|
+
_extractRows(items = []) {
|
|
2712
|
+
const rows = [];
|
|
2713
|
+
for (const item of items) {
|
|
2714
|
+
if (this._isRow(item)) {
|
|
2715
|
+
rows.push({
|
|
2716
|
+
...item,
|
|
2717
|
+
itemType: TableItemType.Row
|
|
2718
|
+
});
|
|
2719
|
+
}
|
|
2720
|
+
else {
|
|
2721
|
+
const group = item;
|
|
2722
|
+
if (group.data?.length) {
|
|
2723
|
+
rows.push(...this._extractRows(group.data));
|
|
2724
|
+
}
|
|
2725
|
+
}
|
|
2726
|
+
}
|
|
2727
|
+
return rows;
|
|
2728
|
+
}
|
|
2729
|
+
_isRow(item) {
|
|
2730
|
+
const maybeRow = item;
|
|
2731
|
+
return typeof maybeRow.id === 'string' && Array.isArray(maybeRow.data);
|
|
2732
|
+
}
|
|
2604
2733
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2605
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTableComponent, selector: "app-input-table", inputs: { values: "values", data: "data" }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }], ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [disabled]=\"disabled\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [class.noData]=\"isRedNoData\"\r\n >\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n\r\n <dxi-total-item \r\n [column]=\"component.sysName\" \r\n displayFormat=\"{0}\"\r\n summaryType=\"sum\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (hasAnyTotal) { \r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"showTotal(component) ? '{0}' : '\u0418\u0422\u041E\u0413\u041E'\"\r\n [summaryType]=\"showTotal(component) ? 'sum' : undefined\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n @if(!!settings.options.maxRows) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0440\u043E\u043A: {{ settings.options.maxRows }}\"\r\n [maxValue]=\"settings.options.maxRows\"\r\n [value]=\"rowsCount\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .noData .dx-datagrid-nodata{color:var(--system-text-negative, #8E2100)}:host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers{position:relative;top:0;border-top:1px solid var(--neutral-bg-divider)}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers td.dx-command-expand.dx-datagrid-group-space{border-right:none!important;border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer td.dx-command-expand.dx-datagrid-group-space{border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-row>td,:host::ng-deep .input-table-content .dx-datagrid .page-wrapper .dx-treelist-container .dx-row>td{color:var(--neutral-text-secondary, #4D5157);font-family:var(--body-md-bold-font-family, \"PT Sans\");font-size:var(--body-md-bold-font-size, 14px);font-weight:var(--body-md-bold-font-weight, 700);line-height:var(--body-md-bold-line-height, 16px)}:host::ng-deep .input-table-content .dx-datagrid .dx-row.dx-data-row.dx-column-lines>td{color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"], dependencies: [{ kind: "component", type: i1$2.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "switchSize", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1$2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i2$3.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i3.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i3.DxiGroupItemComponent, selector: "dxi-group-item", inputs: ["alignByColumn", "column", "customizeText", "displayFormat", "name", "showInColumn", "showInGroupFooter", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i1$2.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2734
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: InputTableComponent, selector: "app-input-table", inputs: { values: "values", data: "data" }, outputs: { changed: "changed" }, viewQueries: [{ propertyName: "dataGrid", first: true, predicate: ["dataGrid"], descendants: true }, { propertyName: "editTemplate", first: true, predicate: ["editTemplate"], descendants: true }], ngImport: i0, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [class.noData]=\"isRedNoData\"\r\n >\r\n @if(disabled) {\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n }\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n\r\n <dxi-total-item \r\n [column]=\"component.sysName\" \r\n displayFormat=\"{0}\"\r\n summaryType=\"sum\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (hasAnyTotal) { \r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"showTotal(component) ? '{0}' : '\u0418\u0422\u041E\u0413\u041E'\"\r\n [summaryType]=\"showTotal(component) ? 'sum' : undefined\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n @if(!!settings.options.maxRows) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0440\u043E\u043A: {{ settings.options.maxRows }}\"\r\n [maxValue]=\"settings.options.maxRows\"\r\n [value]=\"rowsCount\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n @if(disabled) {\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n }\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .noData .dx-datagrid-nodata{color:var(--system-text-negative, #8E2100)}:host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers{position:relative;top:0;border-top:1px solid var(--neutral-bg-divider)}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers td.dx-command-expand.dx-datagrid-group-space{border-right:none!important;border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer td.dx-command-expand.dx-datagrid-group-space{border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-row>td,:host::ng-deep .input-table-content .dx-datagrid .page-wrapper .dx-treelist-container .dx-row>td{color:var(--neutral-text-secondary, #4D5157);font-family:var(--body-md-bold-font-family, \"PT Sans\");font-size:var(--body-md-bold-font-size, 14px);font-weight:var(--body-md-bold-font-weight, 700);line-height:var(--body-md-bold-line-height, 16px)}:host::ng-deep .input-table-content .dx-datagrid .dx-row.dx-data-row.dx-column-lines>td{color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"], dependencies: [{ kind: "component", type: i1$2.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "disabled", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "isSwitch", "switchLabel", "switchValue", "switchSize", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeSwitchValue", "changeCheckboxValue", "clickedLink"] }, { kind: "component", type: i1$2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { kind: "component", type: i2$3.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i3.DxiItemComponent, selector: "dxi-item", inputs: ["disabled", "html", "icon", "template", "text", "title", "titleTemplate", "visible", "onClick", "stylingMode", "type", "baseSize", "box", "ratio", "shrink", "elementAttr", "hint", "beginGroup", "closeMenuOnClick", "items", "selectable", "selected", "colSpan", "cssClass", "dataField", "editorOptions", "editorType", "helpText", "isRequired", "itemType", "label", "name", "validationRules", "visibleIndex", "alignItemLabels", "caption", "colCount", "colCountByScreen", "tabPanelOptions", "tabs", "badge", "tabTemplate", "buttonOptions", "horizontalAlignment", "verticalAlignment", "locateInMenu", "location", "menuItemTemplate", "options", "showText", "widget", "height", "width", "imageAlt", "imageSrc", "acceptedValues", "formatName", "formatValues", "key", "showChevron", "linkAttr", "url", "heightRatio", "widthRatio", "expanded", "hasItems", "id", "parentId"] }, { kind: "component", type: i3.DxoSummaryComponent, selector: "dxo-summary", inputs: ["calculateCustomSummary", "groupItems", "recalculateWhileEditing", "skipEmptyValues", "texts", "totalItems"] }, { kind: "component", type: i3.DxiGroupItemComponent, selector: "dxi-group-item", inputs: ["alignByColumn", "column", "customizeText", "displayFormat", "name", "showInColumn", "showInGroupFooter", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxiTotalItemComponent, selector: "dxi-total-item", inputs: ["alignment", "column", "cssClass", "customizeText", "displayFormat", "name", "showInColumn", "skipEmptyValues", "summaryType", "valueFormat"] }, { kind: "component", type: i3.DxoToolbarComponent, selector: "dxo-toolbar", inputs: ["disabled", "items", "visible", "fileSelectionItems", "container", "multiline"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i1$2.HintErrorMessageComponent, selector: "mrx-hint-error-message", inputs: ["message", "value", "maxValue", "minValue", "minLength", "maxLength", "checkInvalid"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2606
2735
|
}
|
|
2607
2736
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: InputTableComponent, decorators: [{
|
|
2608
2737
|
type: Component,
|
|
2609
|
-
args: [{ selector: 'app-input-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n
|
|
2738
|
+
args: [{ selector: 'app-input-table', changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (settings) {\r\n <div class=\"input-table-content w-100\">\r\n @if (settings.options.label) {\r\n <mrx-label\r\n [required]=\"settings.options.required\"\r\n [tooltip]=\"settings.options.tooltip || ''\"\r\n >\r\n {{ settings.options.label }}\r\n </mrx-label>\r\n }\r\n\r\n <dx-data-grid\r\n #dataGrid\r\n [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n noDataText=\"\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445\"\r\n style=\"width: 100%\"\r\n [wordWrapEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [class.noData]=\"isRedNoData\"\r\n >\r\n @if(disabled) {\r\n <dxo-toolbar>\r\n <dxi-item location=\"after\">\r\n <div *dxTemplate class=\"add-row\">\r\n <mrx-button\r\n [size]=\"'medium'\"\r\n [type]=\"'secondary'\"\r\n [customClasses]=\"'mb-3'\"\r\n (mrxClick)=\"createRow()\"\r\n >{{settings.options.addBtnTitle}}\r\n </mrx-button>\r\n </div>\r\n </dxi-item>\r\n </dxo-toolbar>\r\n\r\n <div *dxTemplate=\"let buttonData of 'editButtonTemplate'\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(buttonData)\"></span>\r\n </div>\r\n\r\n <div *dxTemplate=\"let buttonData of 'deleteButtonTemplate'\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(buttonData)\"></span>\r\n </div>\r\n }\r\n\r\n @if (dataSource.length) {\r\n <dxo-summary>\r\n @for (component of settings.components; track component.id; let first = $first) {\r\n @if (!first) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n\r\n <dxi-total-item \r\n [column]=\"component.sysName\" \r\n displayFormat=\"{0}\"\r\n summaryType=\"sum\"\r\n ></dxi-total-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n\r\n @for (component of component.components; track component.id) {\r\n @if (showTotal(component)) {\r\n <dxi-group-item\r\n [column]=\"component.sysName\"\r\n summaryType=\"sum\"\r\n displayFormat=\"\u0418\u0442\u043E\u0433\u043E: {0}\"\r\n [showInGroupFooter]=\"true\"\r\n [alignByColumn]=\"true\">\r\n </dxi-group-item>\r\n }\r\n }\r\n }\r\n } @else {\r\n @if (hasAnyTotal) { \r\n <dxi-total-item\r\n [column]=\"component.sysName\"\r\n [cssClass]=\"'text-bold'\"\r\n [displayFormat]=\"showTotal(component) ? '{0}' : '\u0418\u0422\u041E\u0413\u041E'\"\r\n [summaryType]=\"showTotal(component) ? 'sum' : undefined\"\r\n ></dxi-total-item>\r\n }\r\n }\r\n }\r\n </dxo-summary>\r\n }\r\n </dx-data-grid>\r\n\r\n @if(!!settings.options.maxRows) {\r\n <mrx-hint-error-message\r\n message=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u043E\u0435 \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E \u0441\u0442\u0440\u043E\u043A: {{ settings.options.maxRows }}\"\r\n [maxValue]=\"settings.options.maxRows\"\r\n [value]=\"rowsCount\"\r\n ></mrx-hint-error-message>\r\n }\r\n\r\n @if(disabled) {\r\n <ng-template #editTemplate let-cellInfo=\"cellInfo\">\r\n <div class=\"d-flex align-items-center justify-content-center\" style=\"gap: 4px\">\r\n <span class=\"mrx-icon icon-edit icon-font-16 cursor-pointer\" (click)=\"editRow(cellInfo)\"></span>\r\n <span class=\"mrx-icon icon-delete icon-font-16 cursor-pointer\" (click)=\"deleteRow(cellInfo)\"></span>\r\n </div>\r\n </ng-template>\r\n }\r\n </div>\r\n}\r\n\r\n\r\n", styles: [":host::ng-deep .input-table-content .noData .dx-datagrid-nodata{color:var(--system-text-negative, #8E2100)}:host::ng-deep .input-table-content .dx-datagrid{padding:0}:host::ng-deep .input-table-content .dx-datagrid-header-panel{display:flex;align-items:center;min-height:40px;padding:0}:host::ng-deep .input-table-content .dx-datagrid-rowsview{border-bottom:none}:host::ng-deep .input-table-content .dx-datagrid-rowsview.dx-empty{border-bottom:1px solid #ddd;height:48px}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer{border-top:none;border-left:none;border-right:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content{padding:0}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content th,:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content td{border:1px solid #ddd;border-top:none;border-collapse:collapse}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content table{border-top:none}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer .dx-datagrid-content .dx-datagrid-summary-item{font-weight:400}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers{position:relative;top:0;border-top:1px solid var(--neutral-bg-divider)}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-headers td.dx-command-expand.dx-datagrid-group-space{border-right:none!important;border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-datagrid-total-footer td.dx-command-expand.dx-datagrid-group-space{border-right-color:transparent}:host::ng-deep .input-table-content .dx-datagrid .dx-row>td,:host::ng-deep .input-table-content .dx-datagrid .page-wrapper .dx-treelist-container .dx-row>td{color:var(--neutral-text-secondary, #4D5157);font-family:var(--body-md-bold-font-family, \"PT Sans\");font-size:var(--body-md-bold-font-size, 14px);font-weight:var(--body-md-bold-font-weight, 700);line-height:var(--body-md-bold-line-height, 16px)}:host::ng-deep .input-table-content .dx-datagrid .dx-row.dx-data-row.dx-column-lines>td{color:var(--neutral-text-tertiary, #71767E);font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}:host::ng-deep .custom-cell-controls .dx-template-wrapper{display:inline-flex}\n"] }]
|
|
2610
2739
|
}], propDecorators: { values: [{
|
|
2611
2740
|
type: Input
|
|
2612
2741
|
}], data: [{
|
|
@@ -3071,5 +3200,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3071
3200
|
* Generated bundle index. Do not edit.
|
|
3072
3201
|
*/
|
|
3073
3202
|
|
|
3074
|
-
export { ComponentShortType, ComponentSizeEnum, ComponentType, ConcurrencyInterceptor, ConcurrencyStoreService, ConditionOperatorType, CustomInputStateEnum, CustomInputStateEnumLabel, DateFormatEnum, DateFormatLabelEnum, DateTypeEnum, DateTypeLabelEnum, DependenceActionType, EApplicationActions, EFFECTS, InnTypeEnum, InnTypeLabelEnum, InputState, InputTableComponent, InputTableModalComponent, LogicalOperatorType, OBJECT_ID_NAME, OBJECT_VERSION_ID_NAME, ObjectFormEffects, ObjectFormModule, SECTION_SYS_NAME_NAME, STATE_NAME, SharedFormModule, TEMPLATE_SYS_NAME_NAME, TemplateComponentsGroupTypeEnum, TemplateComponentsGroupTypeLabels, TemplateStatus, ValueType, appendVersionId, conditionOperatorTypeLabel, getConditionOperatorsList, getDependenceActionsList, getTemplateStatusText, initialObjectFormState, initialSharedFormState, isNullOrUndefined, isNumeric, objectForm_actions as objectFormActions, objectForm_selector as objectFormSelectors, objectReducer, sharedFormReducer, sharedForm_selector as sharedSelectors };
|
|
3203
|
+
export { ComponentShortType, ComponentSizeEnum, ComponentType, ConcurrencyInterceptor, ConcurrencyStoreService, ConditionOperatorType, CustomInputStateEnum, CustomInputStateEnumLabel, DateFormatEnum, DateFormatLabelEnum, DateTypeEnum, DateTypeLabelEnum, DependenceActionType, EApplicationActions, EFFECTS, InnTypeEnum, InnTypeLabelEnum, InputState, InputTableComponent, InputTableModalComponent, LogicalOperatorType, OBJECT_ID_NAME, OBJECT_VERSION_ID_NAME, ObjectFormEffects, ObjectFormModule, SECTION_SYS_NAME_NAME, STATE_NAME, SharedFormModule, TEMPLATE_SYS_NAME_NAME, TableItemType, TemplateComponentsGroupTypeEnum, TemplateComponentsGroupTypeLabels, TemplateStatus, ValueType, appendVersionId, conditionOperatorTypeLabel, getConditionOperatorsList, getDependenceActionsList, getTemplateStatusText, initialObjectFormState, initialSharedFormState, isNullOrUndefined, isNumeric, objectForm_actions as objectFormActions, objectForm_selector as objectFormSelectors, objectReducer, sharedFormReducer, sharedForm_selector as sharedSelectors };
|
|
3075
3204
|
//# sourceMappingURL=myrtex-org-form.mjs.map
|