@ai-table/grid 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- package/components/cell-editors/abstract-cell-editor.component.d.ts +6 -4
- package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
- package/constants/field.d.ts.map +1 -1
- package/core/types/core.d.ts +7 -1
- package/core/types/core.d.ts.map +1 -1
- package/core/utils/common.d.ts.map +1 -1
- package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +15 -5
- package/esm2022/constants/field.mjs +2 -3
- package/esm2022/core/types/core.mjs +1 -1
- package/esm2022/core/utils/common.mjs +14 -2
- package/esm2022/grid.component.mjs +3 -3
- package/esm2022/public-api.mjs +1 -2
- package/esm2022/services/event.service.mjs +4 -7
- package/esm2022/services/field.service.mjs +1 -1
- package/fesm2022/ai-table-grid.mjs +32 -18
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/public-api.d.ts.map +1 -1
- package/services/event.service.d.ts.map +1 -1
- package/services/field.service.d.ts +2 -2
- package/services/field.service.d.ts.map +1 -1
- package/esm2022/utils/cell.mjs +0 -7
- package/esm2022/utils/index.mjs +0 -2
- package/utils/cell.d.ts +0 -4
- package/utils/cell.d.ts.map +0 -1
- package/utils/index.d.ts +0 -2
- package/utils/index.d.ts.map +0 -1
@@ -29,4 +29,4 @@ export class AITableGridFieldService {
|
|
29
29
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AITableGridFieldService, decorators: [{
|
30
30
|
type: Injectable
|
31
31
|
}], ctorParameters: () => [{ type: i1.ThyPopover }] });
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3NlcnZpY2VzL2ZpZWxkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUczRCxNQUFNLENBQUMsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLE9BQU8sRUFBb0MsQ0FBQztBQUcvRixNQUFNLE9BQU8sdUJBQXVCO0lBR2hDLFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFBRyxDQUFDO0lBRTlDLGlCQUFpQixDQUFDLGFBQXdDO1FBQ3RELElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFxQyxFQUFFLE9BQWdCLEVBQUUsV0FBeUIsRUFBRSxRQUFpQjtRQUNuSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLG1CQUFtQixJQUFJLDBCQUEwQixDQUFDO1FBQ3hGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUM1QixNQUFNLEVBQUUsTUFBTTtZQUNkLGFBQWEsRUFBRSxJQUFJO1lBQ25CLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFlBQVksRUFBRTtnQkFDVixPQUFPO2dCQUNQLFdBQVc7Z0JBQ1gsUUFBUTthQUNYO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FyQlEsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkUHJvcGVydHlFZGl0b3IgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEFJRmllbGRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQID0gbmV3IFdlYWtNYXA8QUlUYWJsZSwgQUlUYWJsZUdyaWRGaWVsZFNlcnZpY2U+KCk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZEZpZWxkU2VydmljZSB7XG4gICAgYWlGaWVsZENvbmZpZzogQUlGaWVsZENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3Zlcikge31cblxuICAgIGluaXRBSUZpZWxkQ29uZmlnKGFpRmllbGRDb25maWc6IEFJRmllbGRDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5haUZpZWxkQ29uZmlnID0gYWlGaWVsZENvbmZpZztcbiAgICB9XG5cbiAgICBlZGl0RmllbGRQcm9wZXJ0eShvcmlnaW46IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxhbnk+LCBhaVRhYmxlOiBBSVRhYmxlLCBhaUVkaXRGaWVsZDogQUlUYWJsZUZpZWxkLCBpc1VwZGF0ZTogYm9vbGVhbikge1xuICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmFpRmllbGRDb25maWc/LmZpZWxkUHJvcGVydHlFZGl0b3IgPz8gQUlUYWJsZUZpZWxkUHJvcGVydHlFZGl0b3I7XG4gICAgICAgIHRoaXMudGh5UG9wb3Zlci5vcGVuKGNvbXBvbmVudCwge1xuICAgICAgICAgICAgb3JpZ2luOiBvcmlnaW4sXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgIGFpRWRpdEZpZWxkLFxuICAgICAgICAgICAgICAgIGlzVXBkYXRlXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as i1$2 from '@angular/common';
|
2
2
|
import { NgIf, NgTemplateOutlet, NgForOf, NgClass, CommonModule, NgComponentOutlet } from '@angular/common';
|
3
3
|
import * as i0 from '@angular/core';
|
4
|
-
import { signal,
|
4
|
+
import { signal, computed, inject, Component, ChangeDetectionStrategy, Input, HostListener, ElementRef, Renderer2, input, model, booleanAttribute, Injectable, Pipe, DestroyRef, output, NgZone } from '@angular/core';
|
5
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
6
6
|
import * as i1 from '@angular/forms';
|
7
7
|
import { FormsModule } from '@angular/forms';
|
@@ -236,6 +236,18 @@ function createAITable(records, fields) {
|
|
236
236
|
selectedFields: new Map(),
|
237
237
|
selectedCells: new Map()
|
238
238
|
}),
|
239
|
+
recordsMap: computed(() => {
|
240
|
+
return records().reduce((object, item) => {
|
241
|
+
object[item._id] = item;
|
242
|
+
return object;
|
243
|
+
}, {});
|
244
|
+
}),
|
245
|
+
fieldsMap: computed(() => {
|
246
|
+
return fields().reduce((object, item) => {
|
247
|
+
object[item._id] = item;
|
248
|
+
return object;
|
249
|
+
}, {});
|
250
|
+
}),
|
239
251
|
onChange: () => { },
|
240
252
|
apply: (action) => {
|
241
253
|
aiTable.actions.push(action);
|
@@ -539,8 +551,12 @@ const Actions = {
|
|
539
551
|
|
540
552
|
class AbstractEditCellEditor {
|
541
553
|
constructor() {
|
542
|
-
this.field =
|
543
|
-
|
554
|
+
this.field = computed(() => {
|
555
|
+
return this.aiTable.fieldsMap()[this.fieldId];
|
556
|
+
});
|
557
|
+
this.record = computed(() => {
|
558
|
+
return this.aiTable.recordsMap()[this.recordId];
|
559
|
+
});
|
544
560
|
this.thyPopoverRef = inject((ThyPopoverRef));
|
545
561
|
}
|
546
562
|
ngOnInit() {
|
@@ -555,7 +571,7 @@ class AbstractEditCellEditor {
|
|
555
571
|
this.thyPopoverRef?.close();
|
556
572
|
}
|
557
573
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AbstractEditCellEditor, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
558
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
574
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: AbstractEditCellEditor, isStandalone: true, selector: "abstract-edit-cell", inputs: { aiTable: "aiTable", fieldId: "fieldId", recordId: "recordId" }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
559
575
|
}
|
560
576
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AbstractEditCellEditor, decorators: [{
|
561
577
|
type: Component,
|
@@ -568,6 +584,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
568
584
|
}], propDecorators: { aiTable: [{
|
569
585
|
type: Input,
|
570
586
|
args: [{ required: true }]
|
587
|
+
}], fieldId: [{
|
588
|
+
type: Input,
|
589
|
+
args: [{ required: true }]
|
590
|
+
}], recordId: [{
|
591
|
+
type: Input,
|
592
|
+
args: [{ required: true }]
|
571
593
|
}] } });
|
572
594
|
|
573
595
|
class DateCellEditorComponent extends AbstractEditCellEditor {
|
@@ -1041,7 +1063,7 @@ const EditFieldPropertyItem = {
|
|
1041
1063
|
icon: 'edit',
|
1042
1064
|
exec: (aiTable, field, origin) => {
|
1043
1065
|
const fieldService = AI_TABLE_GRID_FIELD_SERVICE_MAP.get(aiTable);
|
1044
|
-
const copyField =
|
1066
|
+
const copyField = JSON.parse(JSON.stringify(field()));
|
1045
1067
|
origin && fieldService?.editFieldProperty(origin, aiTable, copyField, true);
|
1046
1068
|
}
|
1047
1069
|
};
|
@@ -1213,12 +1235,6 @@ const GRID_CELL_EDITOR_MAP = {
|
|
1213
1235
|
[AITableFieldType.progress]: ProgressEditorComponent
|
1214
1236
|
};
|
1215
1237
|
|
1216
|
-
function getRecordOrField(value, _id) {
|
1217
|
-
return computed(() => {
|
1218
|
-
return value().find((item) => item._id === _id);
|
1219
|
-
});
|
1220
|
-
}
|
1221
|
-
|
1222
1238
|
class AITableGridEventService {
|
1223
1239
|
constructor() {
|
1224
1240
|
this.dblClickEvent$ = new Subject();
|
@@ -1271,9 +1287,7 @@ class AITableGridEventService {
|
|
1271
1287
|
const { x, y, width, height } = cellDom.getBoundingClientRect();
|
1272
1288
|
const fieldId = cellDom.getAttribute('fieldId');
|
1273
1289
|
const recordId = cellDom.getAttribute('recordId');
|
1274
|
-
const
|
1275
|
-
const record = getRecordOrField(this.aiTable.records, recordId);
|
1276
|
-
const component = this.getEditorComponent(field().type);
|
1290
|
+
const component = this.getEditorComponent(this.aiTable.fieldsMap()[fieldId].type);
|
1277
1291
|
const ref = this.thyPopover.open(component, {
|
1278
1292
|
origin: cellDom,
|
1279
1293
|
originPosition: {
|
@@ -1288,8 +1302,8 @@ class AITableGridEventService {
|
|
1288
1302
|
offset: -(height + 4),
|
1289
1303
|
minWidth: width,
|
1290
1304
|
initialState: {
|
1291
|
-
|
1292
|
-
|
1305
|
+
fieldId: fieldId,
|
1306
|
+
recordId: recordId,
|
1293
1307
|
aiTable: this.aiTable
|
1294
1308
|
},
|
1295
1309
|
panelClass: 'grid-cell-editor',
|
@@ -1451,7 +1465,7 @@ class AITableGrid {
|
|
1451
1465
|
this.aiTableGridSelectionService.toggleSelectAll(checked);
|
1452
1466
|
}
|
1453
1467
|
addField(gridColumnBlank) {
|
1454
|
-
const field =
|
1468
|
+
const field = createDefaultField(this.aiTable, AITableFieldType.text);
|
1455
1469
|
this.aiTableGridFieldService.editFieldProperty(gridColumnBlank, this.aiTable, field, false);
|
1456
1470
|
}
|
1457
1471
|
subscribeEvents() {
|
@@ -1543,5 +1557,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
1543
1557
|
* Generated bundle index. Do not edit.
|
1544
1558
|
*/
|
1545
1559
|
|
1546
|
-
export { AITableFieldPropertyEditor, AITableFieldType, AITableGrid, AITableQueries, AITableSelectOptionStyle, AITableStatType, ActionName, Actions, DBL_CLICK_EDIT_TYPE, DEFAULT_COLUMN_WIDTH, DateCellEditorComponent, DefaultFieldMenus, DividerMenuItem, EditFieldPropertyItem, ExecuteType, FLUSHING, FieldOptions, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RemoveFieldItem, RowHeight, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, TextCellEditorComponent, UserPipe, createAITable, createDefaultField, createDefaultFieldName, getDefaultFieldValue, getDefaultRecord, getFieldOptionByField,
|
1560
|
+
export { AITableFieldPropertyEditor, AITableFieldType, AITableGrid, AITableQueries, AITableSelectOptionStyle, AITableStatType, ActionName, Actions, DBL_CLICK_EDIT_TYPE, DEFAULT_COLUMN_WIDTH, DateCellEditorComponent, DefaultFieldMenus, DividerMenuItem, EditFieldPropertyItem, ExecuteType, FLUSHING, FieldOptions, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RemoveFieldItem, RowHeight, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, TextCellEditorComponent, UserPipe, createAITable, createDefaultField, createDefaultFieldName, getDefaultFieldValue, getDefaultRecord, getFieldOptionByField, idCreator, isPathEqual, isSameFieldOption };
|
1547
1561
|
//# sourceMappingURL=ai-table-grid.mjs.map
|