@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3NlcnZpY2VzL2ZpZWxkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFHcEYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0QsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsSUFBSSxPQUFPLEVBQW9DLENBQUM7QUFHL0YsTUFBTSxPQUFPLHVCQUF1QjtJQUdoQyxZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5QyxpQkFBaUIsQ0FBQyxhQUF3QztRQUN0RCxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBcUMsRUFBRSxPQUFnQixFQUFFLFdBQXlDLEVBQUUsUUFBaUI7UUFDbkksTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsSUFBSSwwQkFBMEIsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDNUIsTUFBTSxFQUFFLE1BQU07WUFDZCxhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTLEVBQUUsWUFBWTtZQUN2QixZQUFZLEVBQUU7Z0JBQ1YsT0FBTztnQkFDUCxXQUFXO2dCQUNYLFFBQVE7YUFDWDtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBckJRLHVCQUF1QjtrSEFBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgTW9kZWxTaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcyB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkUHJvcGVydHlFZGl0b3IgfSBmcm9tICcuLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEFJRmllbGRDb25maWcgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBBSV9UQUJMRV9HUklEX0ZJRUxEX1NFUlZJQ0VfTUFQID0gbmV3IFdlYWtNYXA8QUlUYWJsZSwgQUlUYWJsZUdyaWRGaWVsZFNlcnZpY2U+KCk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZEZpZWxkU2VydmljZSB7XG4gICAgYWlGaWVsZENvbmZpZzogQUlGaWVsZENvbmZpZyB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdGh5UG9wb3ZlcjogVGh5UG9wb3Zlcikge31cblxuICAgIGluaXRBSUZpZWxkQ29uZmlnKGFpRmllbGRDb25maWc6IEFJRmllbGRDb25maWcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5haUZpZWxkQ29uZmlnID0gYWlGaWVsZENvbmZpZztcbiAgICB9XG5cbiAgICBlZGl0RmllbGRQcm9wZXJ0eShvcmlnaW46IEhUTUxFbGVtZW50IHwgRWxlbWVudFJlZjxhbnk+LCBhaVRhYmxlOiBBSVRhYmxlLCBhaUVkaXRGaWVsZDogV3JpdGFibGVTaWduYWw8QUlUYWJsZUZpZWxkPiwgaXNVcGRhdGU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5haUZpZWxkQ29uZmlnPy5maWVsZFByb3BlcnR5RWRpdG9yID8/IEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yO1xuICAgICAgICB0aGlzLnRoeVBvcG92ZXIub3Blbihjb21wb25lbnQsIHtcbiAgICAgICAgICAgIG9yaWdpbjogb3JpZ2luLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbUxlZnQnLFxuICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgYWlUYWJsZSxcbiAgICAgICAgICAgICAgICBhaUVkaXRGaWVsZCxcbiAgICAgICAgICAgICAgICBpc1VwZGF0ZVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
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, input, inject, computed, Component, ChangeDetectionStrategy, Input, HostListener, ElementRef, Renderer2, model, booleanAttribute, Injectable, Pipe, DestroyRef, output, NgZone } from '@angular/core';
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 = input.required();
543
- this.record = input.required();
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: "17.1.0", version: "18.2.0", type: AbstractEditCellEditor, isStandalone: true, selector: "abstract-edit-cell", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, record: { classPropertyName: "record", publicName: "record", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null } }, ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
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 = signal(JSON.parse(JSON.stringify(field())));
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 field = getRecordOrField(this.aiTable.fields, fieldId);
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
- field: field,
1292
- record: record,
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 = signal(createDefaultField(this.aiTable, AITableFieldType.text));
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, getRecordOrField, idCreator, isPathEqual, isSameFieldOption };
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