@ai-table/grid 0.0.10 → 0.0.11
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/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
|