@ai-table/grid 0.0.33 → 0.0.35

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.
@@ -3,7 +3,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
3
  import { ThyPopover } from 'ngx-tethys/popover';
4
4
  import { debounceTime, fromEvent, Subject } from 'rxjs';
5
5
  import { GRID_CELL_EDITOR_MAP } from '../constants';
6
- import { AITable } from '../core';
6
+ import { AITable, AITableFieldType } from '../core';
7
7
  import { getCellHorizontalPosition, getEditorBoxOffset, getEditorSpace, getHoverEditorBoxOffset, getHoverEditorSpace } from '../utils';
8
8
  import { AITableContextMenu } from '../components/context-menu/context-menu.component';
9
9
  import * as i0 from "@angular/core";
@@ -157,6 +157,10 @@ export class AITableGridEventService {
157
157
  });
158
158
  if (this.cellEditorPopoverRef) {
159
159
  const wheelEvent = fromEvent(this.cellEditorPopoverRef.componentInstance.elementRef.nativeElement, 'wheel').subscribe((event) => {
160
+ const field = aiTable.fieldsMap()[fieldId];
161
+ if (field.type === AITableFieldType.text || field.type === AITableFieldType.richText) {
162
+ return;
163
+ }
160
164
  event.preventDefault();
161
165
  this.aiTable.context?.scrollAction({
162
166
  deltaX: event.deltaX,
@@ -225,4 +229,4 @@ export class AITableGridEventService {
225
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridEventService, decorators: [{
226
230
  type: Injectable
227
231
  }] });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQWlCLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQXVCLE9BQU8sRUFBb0IsTUFBTSxTQUFTLENBQUM7QUFFekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFHdkYsTUFBTSxPQUFPLHVCQUF1QjtJQURwQztRQU1JLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUUzQyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFFNUMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBRTVDLDBCQUFxQixHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFFbEQsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUkxQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWhDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0E2TjNDO0lBM05HLFVBQVUsQ0FBQyxP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LG9CQUFvQixDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQztZQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO1lBRXJFLElBQUksUUFBUSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN0QixPQUFPO29CQUNILFFBQVE7b0JBQ1IsT0FBTztpQkFDVixDQUFDO1lBQ04sQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCLEVBQUUsT0FBa0M7UUFDaEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUM5RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNqRCxNQUFNLEVBQUUsTUFBcUI7WUFDN0IsY0FBYyxFQUFFLFFBQVE7WUFDeEIsU0FBUyxFQUFFLFlBQVk7WUFDdkIsY0FBYyxFQUFFLElBQUk7WUFDcEIsZ0JBQWdCO1lBQ2hCLFlBQVksRUFBRTtnQkFDVixPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsVUFBVTtnQkFDVixRQUFRO2FBQ1g7U0FDSixDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7K0dBL09RLHVCQUF1QjttSEFBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQURuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaHlBYnN0cmFjdEludGVybmFsT3ZlcmxheVJlZiB9IGZyb20gJ25neC10ZXRoeXMvY29yZSc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyLCBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVkaXRDZWxsRWRpdG9yIH0gZnJvbSAnLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBHUklEX0NFTExfRURJVE9SX01BUCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlLCBBSVRhYmxlRmllbGRUeXBlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlQ29udGV4dE1lbnVPcHRpb25zLCBBSVRhYmxlR3JpZENlbGxSZW5kZXJTY2hlbWEsIEFJVGFibGVPcGVuRWRpdE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRDZWxsSG9yaXpvbnRhbFBvc2l0aW9uLCBnZXRFZGl0b3JCb3hPZmZzZXQsIGdldEVkaXRvclNwYWNlLCBnZXRIb3ZlckVkaXRvckJveE9mZnNldCwgZ2V0SG92ZXJFZGl0b3JTcGFjZSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEFJVGFibGVDb250ZXh0TWVudSB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQUlUYWJsZUdyaWRFdmVudFNlcnZpY2Uge1xuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgYWlGaWVsZFJlbmRlcmVycz86IFBhcnRpYWw8UmVjb3JkPEFJVGFibGVGaWVsZFR5cGUsIEFJVGFibGVHcmlkQ2VsbFJlbmRlclNjaGVtYT4+O1xuXG4gICAgZGJsQ2xpY2tFdmVudCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgbW91c2Vkb3duRXZlbnQkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICAgIG1vdXNlb3ZlckV2ZW50JCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBnbG9iYWxNb3VzZW92ZXJFdmVudCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgZ2xvYmFsTW91c2Vkb3duRXZlbnQkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICAgIHByaXZhdGUgY2VsbEVkaXRvclBvcG92ZXJSZWYhOiBUaHlQb3BvdmVyUmVmPEFic3RyYWN0RWRpdENlbGxFZGl0b3I8YW55Pj4gfCBudWxsO1xuXG4gICAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgcHJpdmF0ZSB0aHlQb3BvdmVyID0gaW5qZWN0KFRoeVBvcG92ZXIpO1xuXG4gICAgaW5pdGlhbGl6ZShhaVRhYmxlOiBBSVRhYmxlLCBhaUZpZWxkUmVuZGVyZXJzPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hPj4pIHtcbiAgICAgICAgdGhpcy5haVRhYmxlID0gYWlUYWJsZTtcbiAgICAgICAgdGhpcy5haUZpZWxkUmVuZGVyZXJzID0gYWlGaWVsZFJlbmRlcmVycztcbiAgICB9XG5cbiAgICByZWdpc3RlckV2ZW50cyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZWxlbWVudCwgJ2RibGNsaWNrJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYmxDbGlja0V2ZW50JC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbGVtZW50LCAnbW91c2VvdmVyJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoODApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZW92ZXJFdmVudCQubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZW92ZXInLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbE1vdXNlb3ZlckV2ZW50JC5uZXh0KGV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIGZyb21FdmVudDxNb3VzZUV2ZW50PihlbGVtZW50LCAnbW91c2Vkb3duJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3VzZWRvd25FdmVudCQubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZG9jdW1lbnQsICdtb3VzZWRvd24nLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmdsb2JhbE1vdXNlZG93bkV2ZW50JC5uZXh0KGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFZGl0b3JDb21wb25lbnQodHlwZTogQUlUYWJsZUZpZWxkVHlwZSkge1xuICAgICAgICBjb25zdCBmaWxlZFJlbmRlclNjaGVtYSA9IHRoaXMuYWlGaWVsZFJlbmRlcmVycyAmJiB0aGlzLmFpRmllbGRSZW5kZXJlcnNbdHlwZV07XG4gICAgICAgIGlmIChmaWxlZFJlbmRlclNjaGVtYSAmJiBmaWxlZFJlbmRlclNjaGVtYS5lZGl0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWxlZFJlbmRlclNjaGVtYS5lZGl0b3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEdSSURfQ0VMTF9FRElUT1JfTUFQW3R5cGVdO1xuICAgIH1cblxuICAgIG9wZW5FZGl0KGNlbGxEb206IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9ID0gY2VsbERvbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgZmllbGRJZCA9IGNlbGxEb20uZ2V0QXR0cmlidXRlKCdmaWVsZElkJykhO1xuICAgICAgICBjb25zdCByZWNvcmRJZCA9IGNlbGxEb20uZ2V0QXR0cmlidXRlKCdyZWNvcmRJZCcpITtcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRFZGl0b3JDb21wb25lbnQodGhpcy5haVRhYmxlLmZpZWxkc01hcCgpW2ZpZWxkSWRdLnR5cGUpO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnRoeVBvcG92ZXIub3Blbihjb21wb25lbnQsIHtcbiAgICAgICAgICAgIG9yaWdpbjogY2VsbERvbSxcbiAgICAgICAgICAgIG9yaWdpblBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgeDogeCAtIDEsXG4gICAgICAgICAgICAgICAgeTogeSArIDEsXG4gICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoICsgMixcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCArIDJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aWR0aDogd2lkdGggKyAxICsgJ3B4JyxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0ICsgMiArICdweCcsXG4gICAgICAgICAgICBwbGFjZW1lbnQ6ICd0b3AnLFxuICAgICAgICAgICAgb2Zmc2V0OiAtKGhlaWdodCArIDQpLFxuICAgICAgICAgICAgbWluV2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgICAgICAgZmllbGRJZDogZmllbGRJZCxcbiAgICAgICAgICAgICAgICByZWNvcmRJZDogcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgYWlUYWJsZTogdGhpcy5haVRhYmxlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ2dyaWQtY2VsbC1lZGl0b3InLFxuICAgICAgICAgICAgb3V0c2lkZUNsb3NhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICBhbmltYXRpb25EaXNhYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgIGF1dG9BZGFwdGl2ZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlZjtcbiAgICB9XG5cbiAgICBnZXRPcmlnaW5Qb3NpdGlvbihhaVRhYmxlOiBBSVRhYmxlLCBvcHRpb25zOiBBSVRhYmxlT3BlbkVkaXRPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgY29udGFpbmVyLCBjb29yZGluYXRlLCByZWNvcmRJZCwgZmllbGRJZCwgaXNIb3ZlckVkaXQgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHsgc2Nyb2xsU3RhdGUgfSA9IGFpVGFibGUuY29udGV4dCE7XG4gICAgICAgIGNvbnN0IHsgcm93SGVpZ2h0LCBjb2x1bW5Db3VudCB9ID0gY29vcmRpbmF0ZTtcbiAgICAgICAgY29uc3QgY2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCA9IFtyZWNvcmRJZCwgZmllbGRJZF07XG4gICAgICAgIGNvbnN0IHsgcm93SW5kZXgsIGNvbHVtbkluZGV4IH0gPSBBSVRhYmxlLmdldENlbGxJbmRleChhaVRhYmxlLCBjZWxsKSE7XG4gICAgICAgIGNvbnN0IG9yaWdpblggPSBjb29yZGluYXRlLmdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IG9yaWdpblkgPSBjb29yZGluYXRlLmdldFJvd09mZnNldChyb3dJbmRleCk7XG4gICAgICAgIGNvbnN0IGNvbHVtbldpZHRoID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleCk7XG4gICAgICAgIGNvbnN0IHsgd2lkdGg6IG9yaWdpbldpZHRoLCBvZmZzZXQ6IG9yaWdpbk9mZnNldCB9ID0gZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbih7XG4gICAgICAgICAgICBjb2x1bW5XaWR0aCxcbiAgICAgICAgICAgIGNvbHVtbkluZGV4LFxuICAgICAgICAgICAgY29sdW1uQ291bnRcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG9yaWdpblJlY3QgPSBjb250YWluZXIhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBpc0Zyb3plbkNvbHVtbiA9IEFJVGFibGUuaXNGcm96ZW5Db2x1bW4oYWlUYWJsZSwgY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCBzY3JvbGxMZWZ0ID0gaXNGcm96ZW5Db2x1bW4gPyAwIDogc2Nyb2xsU3RhdGUoKS5zY3JvbGxMZWZ0O1xuICAgICAgICBjb25zdCBzY3JvbGxUb3AgPSBzY3JvbGxTdGF0ZSgpLnNjcm9sbFRvcDtcbiAgICAgICAgY29uc3Qgb3JpZ2luUG9zaXRpb24gPSB7XG4gICAgICAgICAgICB4OiBvcmlnaW5YICsgb3JpZ2luT2Zmc2V0IC0gc2Nyb2xsTGVmdCArIG9yaWdpblJlY3QueCxcbiAgICAgICAgICAgIHk6IG9yaWdpblkgLSBzY3JvbGxUb3AgKyBvcmlnaW5SZWN0LnksXG4gICAgICAgICAgICB3aWR0aDogb3JpZ2luV2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IHJvd0hlaWdodFxuICAgICAgICB9O1xuICAgICAgICBsZXQgeCA9IG9yaWdpblBvc2l0aW9uLnggKyBnZXRFZGl0b3JCb3hPZmZzZXQoKTtcbiAgICAgICAgbGV0IHkgPSBvcmlnaW5Qb3NpdGlvbi55ICsgZ2V0RWRpdG9yQm94T2Zmc2V0KCk7XG4gICAgICAgIGxldCB3aWR0aCA9IGdldEVkaXRvclNwYWNlKG9yaWdpblBvc2l0aW9uLndpZHRoKTtcbiAgICAgICAgbGV0IGhlaWdodCA9IGdldEVkaXRvclNwYWNlKG9yaWdpblBvc2l0aW9uLmhlaWdodCk7XG4gICAgICAgIC8vIGhvdmVyIOe8lui+kee7hOS7tuaXoOi+ueahhlxuICAgICAgICBpZiAoaXNIb3ZlckVkaXQpIHtcbiAgICAgICAgICAgIHggPSBvcmlnaW5Qb3NpdGlvbi54ICsgZ2V0SG92ZXJFZGl0b3JCb3hPZmZzZXQoKTtcbiAgICAgICAgICAgIHkgPSBvcmlnaW5Qb3NpdGlvbi55ICsgZ2V0SG92ZXJFZGl0b3JCb3hPZmZzZXQoKTtcbiAgICAgICAgICAgIHdpZHRoID0gZ2V0SG92ZXJFZGl0b3JTcGFjZShvcmlnaW5Qb3NpdGlvbi53aWR0aCk7XG4gICAgICAgICAgICBoZWlnaHQgPSBnZXRIb3ZlckVkaXRvclNwYWNlKG9yaWdpblBvc2l0aW9uLmhlaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLm9yaWdpblBvc2l0aW9uLFxuICAgICAgICAgICAgeDogeCxcbiAgICAgICAgICAgIHk6IHksXG4gICAgICAgICAgICB3aWR0aDogd2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIG9wZW5DZWxsRWRpdG9yKGFpVGFibGU6IEFJVGFibGUsIG9wdGlvbnM6IEFJVGFibGVPcGVuRWRpdE9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyBjb250YWluZXIsIHJlY29yZElkLCBmaWVsZElkLCBpc0hvdmVyRWRpdCwgcmVmZXJlbmNlcyB9ID0gb3B0aW9ucztcbiAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5nZXRFZGl0b3JDb21wb25lbnQodGhpcy5haVRhYmxlLmZpZWxkc01hcCgpW2ZpZWxkSWRdLnR5cGUpO1xuICAgICAgICBjb25zdCBvZmZzZXRPcmlnaW5Qb3NpdGlvbiA9IHRoaXMuZ2V0T3JpZ2luUG9zaXRpb24oYWlUYWJsZSwgb3B0aW9ucyk7XG4gICAgICAgIHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3Blbihjb21wb25lbnQsIHtcbiAgICAgICAgICAgIG9yaWdpbjogY29udGFpbmVyISxcbiAgICAgICAgICAgIG9yaWdpblBvc2l0aW9uOiBvZmZzZXRPcmlnaW5Qb3NpdGlvbixcbiAgICAgICAgICAgIHdpZHRoOiBvZmZzZXRPcmlnaW5Qb3NpdGlvbi53aWR0aCArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IG9mZnNldE9yaWdpblBvc2l0aW9uLmhlaWdodCArICdweCcsXG4gICAgICAgICAgICBtaW5XaWR0aDogb2Zmc2V0T3JpZ2luUG9zaXRpb24ud2lkdGggKyAncHgnLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICAgICAgICAgIG9mZnNldDogLW9mZnNldE9yaWdpblBvc2l0aW9uLmhlaWdodCxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IGZpZWxkSWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQ6IHJlY29yZElkLFxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMsXG4gICAgICAgICAgICAgICAgYWlUYWJsZTogYWlUYWJsZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdncmlkLWNlbGwtZWRpdG9yJyxcbiAgICAgICAgICAgIG91dHNpZGVDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgYW5pbWF0aW9uRGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBhdXRvQWRhcHRpdmU6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IHdoZWVsRXZlbnQgPSBmcm9tRXZlbnQ8V2hlZWxFdmVudD4oXG4gICAgICAgICAgICAgICAgdGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZi5jb21wb25lbnRJbnN0YW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ3doZWVsJ1xuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFpVGFibGUuY29udGV4dD8uc2Nyb2xsQWN0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFYOiBldmVudC5kZWx0YVgsXG4gICAgICAgICAgICAgICAgICAgIGRlbHRhWTogZXZlbnQuZGVsdGFZLFxuICAgICAgICAgICAgICAgICAgICBzaGlmdEtleTogZXZlbnQuc2hpZnRLZXksXG4gICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnaW5Qb3NpdGlvbiA9IHRoaXMuZ2V0T3JpZ2luUG9zaXRpb24oYWlUYWJsZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gKHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYgYXMgVGh5QWJzdHJhY3RJbnRlcm5hbE92ZXJsYXlSZWY8YW55LCBhbnksIGFueT4pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldE92ZXJsYXlSZWYoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5nZXRDb25maWcoKS5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kuc2V0T3JpZ2luKG9yaWdpblBvc2l0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3kuYXBwbHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB3aGVlbEV2ZW50LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZiA9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICh0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFic3RyYWN0RWRpdENlbGxFZGl0b3I8YW55PikudXBkYXRlRmllbGRWYWx1ZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9ucy51cGRhdGVGaWVsZFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmO1xuICAgIH1cblxuICAgIGNsb3NlQ2VsbEVkaXRvcigpIHtcbiAgICAgICAgaWYgKHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICAgICAgICAgIHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudEVkaXRDZWxsKCkge1xuICAgICAgICBpZiAodGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZikge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkSWQgPSB0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlPy5yZWNvcmRJZDtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkSWQgPSB0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlPy5maWVsZElkO1xuXG4gICAgICAgICAgICBpZiAocmVjb3JkSWQgJiYgZmllbGRJZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZElkLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZElkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIG9wZW5Db250ZXh0TWVudShhaVRhYmxlOiBBSVRhYmxlLCBvcHRpb25zOiBBSVRhYmxlQ29udGV4dE1lbnVPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgb3JpZ2luLCBwb3NpdGlvbiwgbWVudUl0ZW1zLCB0YXJnZXROYW1lLCB2aWV3Q29udGFpbmVyUmVmIH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCByZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihBSVRhYmxlQ29udGV4dE1lbnUsIHtcbiAgICAgICAgICAgIG9yaWdpbjogb3JpZ2luIGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgb3JpZ2luUG9zaXRpb246IHBvc2l0aW9uLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAnYm90dG9tTGVmdCcsXG4gICAgICAgICAgICBpbnNpZGVDbG9zYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBhaVRhYmxlLFxuICAgICAgICAgICAgICAgIG1lbnVJdGVtcyxcbiAgICAgICAgICAgICAgICB0YXJnZXROYW1lLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVmO1xuICAgIH1cbn1cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3NlcnZpY2VzL2V2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxVQUFVLEVBQWlCLE1BQU0sb0JBQW9CLENBQUM7QUFDL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXhELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQXVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDOztBQUd2RixNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBTUksbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBRTNDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUU1QyxvQkFBZSxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFFNUMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUVsRCwwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBYyxDQUFDO1FBSTFDLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztLQWlPM0M7SUEvTkcs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b250ZW50IjpbImltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVGh5QWJzdHJhY3RJbnRlcm5hbE92ZXJsYXlSZWYgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlciwgVGh5UG9wb3ZlclJlZiB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFZGl0Q2VsbEVkaXRvciB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgR1JJRF9DRUxMX0VESVRPUl9NQVAgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQUlSZWNvcmRGaWVsZElkUGF0aCwgQUlUYWJsZSwgQUlUYWJsZUZpZWxkVHlwZSB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUNvbnRleHRNZW51T3B0aW9ucywgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hLCBBSVRhYmxlT3BlbkVkaXRPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0Q2VsbEhvcml6b250YWxQb3NpdGlvbiwgZ2V0RWRpdG9yQm94T2Zmc2V0LCBnZXRFZGl0b3JTcGFjZSwgZ2V0SG92ZXJFZGl0b3JCb3hPZmZzZXQsIGdldEhvdmVyRWRpdG9yU3BhY2UgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlQ29udGV4dE1lbnUgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFJVGFibGVHcmlkRXZlbnRTZXJ2aWNlIHtcbiAgICBhaVRhYmxlITogQUlUYWJsZTtcblxuICAgIGFpRmllbGRSZW5kZXJlcnM/OiBQYXJ0aWFsPFJlY29yZDxBSVRhYmxlRmllbGRUeXBlLCBBSVRhYmxlR3JpZENlbGxSZW5kZXJTY2hlbWE+PjtcblxuICAgIGRibENsaWNrRXZlbnQkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICAgIG1vdXNlZG93bkV2ZW50JCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBtb3VzZW92ZXJFdmVudCQgPSBuZXcgU3ViamVjdDxNb3VzZUV2ZW50PigpO1xuXG4gICAgZ2xvYmFsTW91c2VvdmVyRXZlbnQkID0gbmV3IFN1YmplY3Q8TW91c2VFdmVudD4oKTtcblxuICAgIGdsb2JhbE1vdXNlZG93bkV2ZW50JCA9IG5ldyBTdWJqZWN0PE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIGNlbGxFZGl0b3JQb3BvdmVyUmVmITogVGh5UG9wb3ZlclJlZjxBYnN0cmFjdEVkaXRDZWxsRWRpdG9yPGFueT4+IHwgbnVsbDtcblxuICAgIHByaXZhdGUgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgdGh5UG9wb3ZlciA9IGluamVjdChUaHlQb3BvdmVyKTtcblxuICAgIGluaXRpYWxpemUoYWlUYWJsZTogQUlUYWJsZSwgYWlGaWVsZFJlbmRlcmVycz86IFBhcnRpYWw8UmVjb3JkPEFJVGFibGVGaWVsZFR5cGUsIEFJVGFibGVHcmlkQ2VsbFJlbmRlclNjaGVtYT4+KSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGFpVGFibGU7XG4gICAgICAgIHRoaXMuYWlGaWVsZFJlbmRlcmVycyA9IGFpRmllbGRSZW5kZXJlcnM7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJFdmVudHMoZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGVsZW1lbnQsICdkYmxjbGljaycsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGJsQ2xpY2tFdmVudCQubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZWxlbWVudCwgJ21vdXNlb3ZlcicsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDgwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2VvdmVyRXZlbnQkLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2VvdmVyJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxNb3VzZW92ZXJFdmVudCQubmV4dChldmVudCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICBmcm9tRXZlbnQ8TW91c2VFdmVudD4oZWxlbWVudCwgJ21vdXNlZG93bicsIHsgcGFzc2l2ZTogdHJ1ZSB9KVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubW91c2Vkb3duRXZlbnQkLm5leHQoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KGRvY3VtZW50LCAnbW91c2Vkb3duJywgeyBwYXNzaXZlOiB0cnVlIH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5nbG9iYWxNb3VzZWRvd25FdmVudCQubmV4dChldmVudCBhcyBNb3VzZUV2ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RWRpdG9yQ29tcG9uZW50KHR5cGU6IEFJVGFibGVGaWVsZFR5cGUpIHtcbiAgICAgICAgY29uc3QgZmlsZWRSZW5kZXJTY2hlbWEgPSB0aGlzLmFpRmllbGRSZW5kZXJlcnMgJiYgdGhpcy5haUZpZWxkUmVuZGVyZXJzW3R5cGVdO1xuICAgICAgICBpZiAoZmlsZWRSZW5kZXJTY2hlbWEgJiYgZmlsZWRSZW5kZXJTY2hlbWEuZWRpdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZmlsZWRSZW5kZXJTY2hlbWEuZWRpdG9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBHUklEX0NFTExfRURJVE9SX01BUFt0eXBlXTtcbiAgICB9XG5cbiAgICBvcGVuRWRpdChjZWxsRG9tOiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IGNlbGxEb20uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGNvbnN0IGZpZWxkSWQgPSBjZWxsRG9tLmdldEF0dHJpYnV0ZSgnZmllbGRJZCcpITtcbiAgICAgICAgY29uc3QgcmVjb3JkSWQgPSBjZWxsRG9tLmdldEF0dHJpYnV0ZSgncmVjb3JkSWQnKSE7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0RWRpdG9yQ29tcG9uZW50KHRoaXMuYWlUYWJsZS5maWVsZHNNYXAoKVtmaWVsZElkXS50eXBlKTtcbiAgICAgICAgY29uc3QgcmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4oY29tcG9uZW50LCB7XG4gICAgICAgICAgICBvcmlnaW46IGNlbGxEb20sXG4gICAgICAgICAgICBvcmlnaW5Qb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgIHg6IHggLSAxLFxuICAgICAgICAgICAgICAgIHk6IHkgKyAxLFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCArIDIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgKyAyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoICsgMSArICdweCcsXG4gICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCArIDIgKyAncHgnLFxuICAgICAgICAgICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICAgICAgICAgIG9mZnNldDogLShoZWlnaHQgKyA0KSxcbiAgICAgICAgICAgIG1pbldpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IGZpZWxkSWQsXG4gICAgICAgICAgICAgICAgcmVjb3JkSWQ6IHJlY29yZElkLFxuICAgICAgICAgICAgICAgIGFpVGFibGU6IHRoaXMuYWlUYWJsZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdncmlkLWNlbGwtZWRpdG9yJyxcbiAgICAgICAgICAgIG91dHNpZGVDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogZmFsc2UsXG4gICAgICAgICAgICBtYW51YWxDbG9zdXJlOiB0cnVlLFxuICAgICAgICAgICAgYW5pbWF0aW9uRGlzYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICBhdXRvQWRhcHRpdmU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZWY7XG4gICAgfVxuXG4gICAgZ2V0T3JpZ2luUG9zaXRpb24oYWlUYWJsZTogQUlUYWJsZSwgb3B0aW9uczogQUlUYWJsZU9wZW5FZGl0T3B0aW9ucykge1xuICAgICAgICBjb25zdCB7IGNvbnRhaW5lciwgY29vcmRpbmF0ZSwgcmVjb3JkSWQsIGZpZWxkSWQsIGlzSG92ZXJFZGl0IH0gPSBvcHRpb25zO1xuICAgICAgICBjb25zdCB7IHNjcm9sbFN0YXRlIH0gPSBhaVRhYmxlLmNvbnRleHQhO1xuICAgICAgICBjb25zdCB7IHJvd0hlaWdodCwgY29sdW1uQ291bnQgfSA9IGNvb3JkaW5hdGU7XG4gICAgICAgIGNvbnN0IGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGggPSBbcmVjb3JkSWQsIGZpZWxkSWRdO1xuICAgICAgICBjb25zdCB7IHJvd0luZGV4LCBjb2x1bW5JbmRleCB9ID0gQUlUYWJsZS5nZXRDZWxsSW5kZXgoYWlUYWJsZSwgY2VsbCkhO1xuICAgICAgICBjb25zdCBvcmlnaW5YID0gY29vcmRpbmF0ZS5nZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCBvcmlnaW5ZID0gY29vcmRpbmF0ZS5nZXRSb3dPZmZzZXQocm93SW5kZXgpO1xuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IGNvb3JkaW5hdGUuZ2V0Q29sdW1uV2lkdGgoY29sdW1uSW5kZXgpO1xuICAgICAgICBjb25zdCB7IHdpZHRoOiBvcmlnaW5XaWR0aCwgb2Zmc2V0OiBvcmlnaW5PZmZzZXQgfSA9IGdldENlbGxIb3Jpem9udGFsUG9zaXRpb24oe1xuICAgICAgICAgICAgY29sdW1uV2lkdGgsXG4gICAgICAgICAgICBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgIGNvbHVtbkNvdW50XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBvcmlnaW5SZWN0ID0gY29udGFpbmVyIS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3QgaXNGcm96ZW5Db2x1bW4gPSBBSVRhYmxlLmlzRnJvemVuQ29sdW1uKGFpVGFibGUsIGNvbHVtbkluZGV4KTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsTGVmdCA9IGlzRnJvemVuQ29sdW1uID8gMCA6IHNjcm9sbFN0YXRlKCkuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gc2Nyb2xsU3RhdGUoKS5zY3JvbGxUb3A7XG4gICAgICAgIGNvbnN0IG9yaWdpblBvc2l0aW9uID0ge1xuICAgICAgICAgICAgeDogb3JpZ2luWCArIG9yaWdpbk9mZnNldCAtIHNjcm9sbExlZnQgKyBvcmlnaW5SZWN0LngsXG4gICAgICAgICAgICB5OiBvcmlnaW5ZIC0gc2Nyb2xsVG9wICsgb3JpZ2luUmVjdC55LFxuICAgICAgICAgICAgd2lkdGg6IG9yaWdpbldpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiByb3dIZWlnaHRcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHggPSBvcmlnaW5Qb3NpdGlvbi54ICsgZ2V0RWRpdG9yQm94T2Zmc2V0KCk7XG4gICAgICAgIGxldCB5ID0gb3JpZ2luUG9zaXRpb24ueSArIGdldEVkaXRvckJveE9mZnNldCgpO1xuICAgICAgICBsZXQgd2lkdGggPSBnZXRFZGl0b3JTcGFjZShvcmlnaW5Qb3NpdGlvbi53aWR0aCk7XG4gICAgICAgIGxldCBoZWlnaHQgPSBnZXRFZGl0b3JTcGFjZShvcmlnaW5Qb3NpdGlvbi5oZWlnaHQpO1xuICAgICAgICAvLyBob3ZlciDnvJbovpHnu4Tku7bml6DovrnmoYZcbiAgICAgICAgaWYgKGlzSG92ZXJFZGl0KSB7XG4gICAgICAgICAgICB4ID0gb3JpZ2luUG9zaXRpb24ueCArIGdldEhvdmVyRWRpdG9yQm94T2Zmc2V0KCk7XG4gICAgICAgICAgICB5ID0gb3JpZ2luUG9zaXRpb24ueSArIGdldEhvdmVyRWRpdG9yQm94T2Zmc2V0KCk7XG4gICAgICAgICAgICB3aWR0aCA9IGdldEhvdmVyRWRpdG9yU3BhY2Uob3JpZ2luUG9zaXRpb24ud2lkdGgpO1xuICAgICAgICAgICAgaGVpZ2h0ID0gZ2V0SG92ZXJFZGl0b3JTcGFjZShvcmlnaW5Qb3NpdGlvbi5oZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5vcmlnaW5Qb3NpdGlvbixcbiAgICAgICAgICAgIHg6IHgsXG4gICAgICAgICAgICB5OiB5LFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBvcGVuQ2VsbEVkaXRvcihhaVRhYmxlOiBBSVRhYmxlLCBvcHRpb25zOiBBSVRhYmxlT3BlbkVkaXRPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IHsgY29udGFpbmVyLCByZWNvcmRJZCwgZmllbGRJZCwgaXNIb3ZlckVkaXQsIHJlZmVyZW5jZXMgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuZ2V0RWRpdG9yQ29tcG9uZW50KHRoaXMuYWlUYWJsZS5maWVsZHNNYXAoKVtmaWVsZElkXS50eXBlKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0T3JpZ2luUG9zaXRpb24gPSB0aGlzLmdldE9yaWdpblBvc2l0aW9uKGFpVGFibGUsIG9wdGlvbnMpO1xuICAgICAgICB0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmID0gdGhpcy50aHlQb3BvdmVyLm9wZW4oY29tcG9uZW50LCB7XG4gICAgICAgICAgICBvcmlnaW46IGNvbnRhaW5lciEsXG4gICAgICAgICAgICBvcmlnaW5Qb3NpdGlvbjogb2Zmc2V0T3JpZ2luUG9zaXRpb24sXG4gICAgICAgICAgICB3aWR0aDogb2Zmc2V0T3JpZ2luUG9zaXRpb24ud2lkdGggKyAncHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiBvZmZzZXRPcmlnaW5Qb3NpdGlvbi5oZWlnaHQgKyAncHgnLFxuICAgICAgICAgICAgbWluV2lkdGg6IG9mZnNldE9yaWdpblBvc2l0aW9uLndpZHRoICsgJ3B4JyxcbiAgICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbScsXG4gICAgICAgICAgICBvZmZzZXQ6IC1vZmZzZXRPcmlnaW5Qb3NpdGlvbi5oZWlnaHQsXG4gICAgICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICAgICAgICBmaWVsZElkOiBmaWVsZElkLFxuICAgICAgICAgICAgICAgIHJlY29yZElkOiByZWNvcmRJZCxcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzLFxuICAgICAgICAgICAgICAgIGFpVGFibGU6IGFpVGFibGVcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBwYW5lbENsYXNzOiAnZ3JpZC1jZWxsLWVkaXRvcicsXG4gICAgICAgICAgICBvdXRzaWRlQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgIGFuaW1hdGlvbkRpc2FibGVkOiB0cnVlLFxuICAgICAgICAgICAgYXV0b0FkYXB0aXZlOiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICh0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmKSB7XG4gICAgICAgICAgICBjb25zdCB3aGVlbEV2ZW50ID0gZnJvbUV2ZW50PFdoZWVsRXZlbnQ+KFxuICAgICAgICAgICAgICAgIHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2UuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICd3aGVlbCdcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKChldmVudDogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gYWlUYWJsZS5maWVsZHNNYXAoKVtmaWVsZElkXTtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS50ZXh0IHx8IGZpZWxkLnR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUucmljaFRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWlUYWJsZS5jb250ZXh0Py5zY3JvbGxBY3Rpb24oe1xuICAgICAgICAgICAgICAgICAgICBkZWx0YVg6IGV2ZW50LmRlbHRhWCxcbiAgICAgICAgICAgICAgICAgICAgZGVsdGFZOiBldmVudC5kZWx0YVksXG4gICAgICAgICAgICAgICAgICAgIHNoaWZ0S2V5OiBldmVudC5zaGlmdEtleSxcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpblBvc2l0aW9uID0gdGhpcy5nZXRPcmlnaW5Qb3NpdGlvbihhaVRhYmxlLCBvcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSAodGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZiBhcyBUaHlBYnN0cmFjdEludGVybmFsT3ZlcmxheVJlZjxhbnksIGFueSwgYW55PilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0T3ZlcmxheVJlZigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneS5zZXRPcmlnaW4ob3JpZ2luUG9zaXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb25TdHJhdGVneS5hcHBseSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHdoZWVsRXZlbnQudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmID0gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgKHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2UgYXMgQWJzdHJhY3RFZGl0Q2VsbEVkaXRvcjxhbnk+KS51cGRhdGVGaWVsZFZhbHVlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb25zLnVwZGF0ZUZpZWxkVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWY7XG4gICAgfVxuXG4gICAgY2xvc2VDZWxsRWRpdG9yKCkge1xuICAgICAgICBpZiAodGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZikge1xuICAgICAgICAgICAgdGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5jZWxsRWRpdG9yUG9wb3ZlclJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50RWRpdENlbGwoKSB7XG4gICAgICAgIGlmICh0aGlzLmNlbGxFZGl0b3JQb3BvdmVyUmVmKSB7XG4gICAgICAgICAgICBjb25zdCByZWNvcmRJZCA9IHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2U/LnJlY29yZElkO1xuICAgICAgICAgICAgY29uc3QgZmllbGRJZCA9IHRoaXMuY2VsbEVkaXRvclBvcG92ZXJSZWYuY29tcG9uZW50SW5zdGFuY2U/LmZpZWxkSWQ7XG5cbiAgICAgICAgICAgIGlmIChyZWNvcmRJZCAmJiBmaWVsZElkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkSWRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgb3BlbkNvbnRleHRNZW51KGFpVGFibGU6IEFJVGFibGUsIG9wdGlvbnM6IEFJVGFibGVDb250ZXh0TWVudU9wdGlvbnMpIHtcbiAgICAgICAgY29uc3QgeyBvcmlnaW4sIHBvc2l0aW9uLCBtZW51SXRlbXMsIHRhcmdldE5hbWUsIHZpZXdDb250YWluZXJSZWYgfSA9IG9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMudGh5UG9wb3Zlci5vcGVuKEFJVGFibGVDb250ZXh0TWVudSwge1xuICAgICAgICAgICAgb3JpZ2luOiBvcmlnaW4gYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBvcmlnaW5Qb3NpdGlvbjogcG9zaXRpb24sXG4gICAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b21MZWZ0JyxcbiAgICAgICAgICAgIGluc2lkZUNsb3NhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgIGFpVGFibGUsXG4gICAgICAgICAgICAgICAgbWVudUl0ZW1zLFxuICAgICAgICAgICAgICAgIHRhcmdldE5hbWUsXG4gICAgICAgICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZWY7XG4gICAgfVxufVxuIl19
@@ -1,7 +1,17 @@
1
- import { Injectable } from '@angular/core';
1
+ import { computed, Injectable } from '@angular/core';
2
+ import { AITableSelectAllState } from '../types';
2
3
  import * as i0 from "@angular/core";
3
4
  export class AITableGridSelectionService {
4
- constructor() { }
5
+ constructor() {
6
+ this.selectAllState = computed(() => {
7
+ const selectedRecords = this.aiTable.selection().selectedRecords;
8
+ return selectedRecords.size === this.aiTable.records().length
9
+ ? AITableSelectAllState.all
10
+ : selectedRecords.size === 0
11
+ ? AITableSelectAllState.none
12
+ : AITableSelectAllState.partial;
13
+ });
14
+ }
5
15
  initialize(aiTable) {
6
16
  this.aiTable = aiTable;
7
17
  }
@@ -10,7 +20,8 @@ export class AITableGridSelectionService {
10
20
  selectedRecords: new Set(),
11
21
  selectedFields: new Set(),
12
22
  selectedCells: new Set(),
13
- activeCell: null
23
+ activeCell: null,
24
+ selectAllState: AITableSelectAllState.none
14
25
  });
15
26
  }
16
27
  setActiveCell(activeCell) {
@@ -30,19 +41,31 @@ export class AITableGridSelectionService {
30
41
  else {
31
42
  this.aiTable.selection().selectedRecords.add(recordId);
32
43
  }
44
+ const selectedRecords = this.aiTable.selection().selectedRecords;
33
45
  this.aiTable.selection.set({
34
- selectedRecords: this.aiTable.selection().selectedRecords,
46
+ selectedRecords: selectedRecords,
35
47
  selectedFields: new Set(),
36
48
  selectedCells: new Set(),
37
- activeCell: null
49
+ activeCell: null,
50
+ selectAllState: this.selectAllState()
38
51
  });
39
52
  }
40
53
  toggleSelectAll(checked) {
41
- this.clearSelection();
42
54
  if (checked) {
43
- this.aiTable.records().forEach((item) => {
44
- this.selectRecord(item._id);
45
- });
55
+ if (this.aiTable.records().length === 0) {
56
+ this.aiTable.selection.set({
57
+ ...this.aiTable.selection(),
58
+ selectAllState: AITableSelectAllState.all
59
+ });
60
+ }
61
+ else {
62
+ this.aiTable.records().forEach((item) => {
63
+ this.selectRecord(item._id);
64
+ });
65
+ }
66
+ }
67
+ else {
68
+ this.clearSelection();
46
69
  }
47
70
  }
48
71
  updateSelect(event) {
@@ -101,4 +124,4 @@ export class AITableGridSelectionService {
101
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableGridSelectionService, decorators: [{
102
125
  type: Injectable
103
126
  }], ctorParameters: () => [] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9zZXJ2aWNlcy9zZWxlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUkzQyxNQUFNLE9BQU8sMkJBQTJCO0lBR3BDLGdCQUFlLENBQUM7SUFFaEIsVUFBVSxDQUFDLE9BQWdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLGVBQWUsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUMxQixjQUFjLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDekIsYUFBYSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3hCLFVBQVUsRUFBRSxJQUFJO1NBQ25CLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBK0I7UUFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBZTtRQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3ZELE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUs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RSxDQUFDLEVBQUUsRUFBRSxDQUFDO2dCQUM5QyxLQUFLLElBQUksQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7b0JBQzlDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDM0QsQ0FBQzsrR0EzR1EsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlIH0gZnJvbSAnLi4vY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2Uge1xuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgaW5pdGlhbGl6ZShhaVRhYmxlOiBBSVRhYmxlKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZSA9IGFpVGFibGU7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24uc2V0KHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkczogbmV3IFNldCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRGaWVsZHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIHNlbGVjdGVkQ2VsbHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIGFjdGl2ZUNlbGw6IG51bGxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc2V0QWN0aXZlQ2VsbChhY3RpdmVDZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoKSB7XG4gICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5hY3RpdmVDZWxsID0gYWN0aXZlQ2VsbDtcbiAgICB9XG5cbiAgICBzZWxlY3RGaWVsZChmaWVsZElkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZEZpZWxkcy5oYXMoZmllbGRJZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZEZpZWxkcy5hZGQoZmllbGRJZCk7XG4gICAgfVxuXG4gICAgc2VsZWN0UmVjb3JkKHJlY29yZElkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHMuaGFzKHJlY29yZElkKSkge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3Jkcy5kZWxldGUocmVjb3JkSWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3Jkcy5hZGQocmVjb3JkSWQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24uc2V0KHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkczogdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3JkcyxcbiAgICAgICAgICAgIHNlbGVjdGVkRmllbGRzOiBuZXcgU2V0KCksXG4gICAgICAgICAgICBzZWxlY3RlZENlbGxzOiBuZXcgU2V0KCksXG4gICAgICAgICAgICBhY3RpdmVDZWxsOiBudWxsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRvZ2dsZVNlbGVjdEFsbChjaGVja2VkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuYWlUYWJsZS5yZWNvcmRzKCkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0UmVjb3JkKGl0ZW0uX2lkKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50Py50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2VsbERvbSA9IHRhcmdldC5jbG9zZXN0KCcuZ3JpZC1jZWxsJyk7XG4gICAgICAgIGNvbnN0IGNvbERvbSA9IHRhcmdldC5jbG9zZXN0KCcuZ3JpZC1maWVsZCcpO1xuICAgICAgICBjb25zdCBjaGVja2JveCA9IHRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnICYmICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB0YXJnZXQuY2xvc2VzdCgnLmdyaWQtY2hlY2tib3gnKTtcbiAgICAgICAgY29uc3QgZmllbGRBY3Rpb24gPSB0YXJnZXQuY2xvc2VzdCgnLmdyaWQtZmllbGQtYWN0aW9uJyk7XG4gICAgICAgIGlmIChjZWxsRG9tKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZElkID0gY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ2ZpZWxkSWQnKTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZElkID0gY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ3JlY29yZElkJyk7XG4gICAgICAgICAgICBmaWVsZElkICYmIHJlY29yZElkICYmIHRoaXMuc2VsZWN0Q2VsbHMoW3JlY29yZElkLCBmaWVsZElkXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbERvbSAmJiAhZmllbGRBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkSWQgPSBjb2xEb20uZ2V0QXR0cmlidXRlKCdmaWVsZElkJyk7XG4gICAgICAgICAgICBmaWVsZElkICYmIHRoaXMuc2VsZWN0RmllbGQoZmllbGRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjZWxsRG9tICYmICFjb2xEb20gJiYgIWNoZWNrYm94KSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RDZWxscyhzdGFydENlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGVuZENlbGw/OiBBSVJlY29yZEZpZWxkSWRQYXRoKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydFJlY29yZElkLCBzdGFydEZpZWxkSWRdID0gc3RhcnRDZWxsO1xuICAgICAgICBjb25zdCByZWNvcmRzID0gdGhpcy5haVRhYmxlLnJlY29yZHMoKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5haVRhYmxlLmZpZWxkcygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgICAgaWYgKCFlbmRDZWxsKSB7XG4gICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFkZChgJHtzdGFydFJlY29yZElkfToke3N0YXJ0RmllbGRJZH1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IFtlbmRSZWNvcmRJZCwgZW5kRmllbGRJZF0gPSBlbmRDZWxsO1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydFJvd0luZGV4ID0gcmVjb3Jkcy5maW5kSW5kZXgoKHJlY29yZCkgPT4gcmVjb3JkLl9pZCA9PT0gc3RhcnRSZWNvcmRJZCk7XG4gICAgICAgICAgICBjb25zdCBlbmRSb3dJbmRleCA9IHJlY29yZHMuZmluZEluZGV4KChyZWNvcmQpID0+IHJlY29yZC5faWQgPT09IGVuZFJlY29yZElkKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Q29sSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGQuX2lkID09PSBzdGFydEZpZWxkSWQpO1xuICAgICAgICAgICAgY29uc3QgZW5kQ29sSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGQuX2lkID09PSBlbmRGaWVsZElkKTtcblxuICAgICAgICAgICAgY29uc3QgbWluUm93SW5kZXggPSBNYXRoLm1pbihzdGFydFJvd0luZGV4LCBlbmRSb3dJbmRleCk7XG4gICAgICAgICAgICBjb25zdCBtYXhSb3dJbmRleCA9IE1hdGgubWF4KHN0YXJ0Um93SW5kZXgsIGVuZFJvd0luZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IG1pbkNvbEluZGV4ID0gTWF0aC5taW4oc3RhcnRDb2xJbmRleCwgZW5kQ29sSW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgbWF4Q29sSW5kZXggPSBNYXRoLm1heChzdGFydENvbEluZGV4LCBlbmRDb2xJbmRleCk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBtaW5Sb3dJbmRleDsgaSA8PSBtYXhSb3dJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IG1pbkNvbEluZGV4OyBqIDw9IG1heENvbEluZGV4OyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDZWxscy5hZGQoYCR7cmVjb3Jkc1tpXS5faWR9OiR7ZmllbGRzW2pdLl9pZH1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlQ2VsbChzdGFydENlbGwpO1xuICAgICAgICB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscyA9IHNlbGVjdGVkQ2VsbHM7XG4gICAgfVxufVxuIl19
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9zZXJ2aWNlcy9zZWxlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBR2pELE1BQU0sT0FBTywyQkFBMkI7SUFZcEM7UUFUQSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDakUsT0FBTyxlQUFlLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTTtnQkFDekQsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLEdBQUc7Z0JBQzNCLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLENBQUM7b0JBQzFCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJO29CQUM1QixDQUFDLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBRVksQ0FBQztJQUVoQixVQUFVLENBQUMsT0FBZ0I7UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDdkIsZUFBZSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQzFCLGNBQWMsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUN6QixhQUFhLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDeEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLHFCQUFxQixDQUFDLElB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QUFDLENBQUMsQ0FBQyxHQUFHLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQzVELENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUMzRCxDQUFDOytHQS9IUSwyQkFBMkI7bUhBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBSVJlY29yZEZpZWxkSWRQYXRoLCBBSVRhYmxlIH0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0QWxsU3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2Uge1xuICAgIGFpVGFibGUhOiBBSVRhYmxlO1xuXG4gICAgc2VsZWN0QWxsU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVjb3JkcyA9IHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZFJlY29yZHM7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZFJlY29yZHMuc2l6ZSA9PT0gdGhpcy5haVRhYmxlLnJlY29yZHMoKS5sZW5ndGhcbiAgICAgICAgICAgID8gQUlUYWJsZVNlbGVjdEFsbFN0YXRlLmFsbFxuICAgICAgICAgICAgOiBzZWxlY3RlZFJlY29yZHMuc2l6ZSA9PT0gMFxuICAgICAgICAgICAgICA/IEFJVGFibGVTZWxlY3RBbGxTdGF0ZS5ub25lXG4gICAgICAgICAgICAgIDogQUlUYWJsZVNlbGVjdEFsbFN0YXRlLnBhcnRpYWw7XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBpbml0aWFsaXplKGFpVGFibGU6IEFJVGFibGUpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlID0gYWlUYWJsZTtcbiAgICB9XG5cbiAgICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbi5zZXQoe1xuICAgICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiBuZXcgU2V0KCksXG4gICAgICAgICAgICBzZWxlY3RlZEZpZWxkczogbmV3IFNldCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRDZWxsczogbmV3IFNldCgpLFxuICAgICAgICAgICAgYWN0aXZlQ2VsbDogbnVsbCxcbiAgICAgICAgICAgIHNlbGVjdEFsbFN0YXRlOiBBSVRhYmxlU2VsZWN0QWxsU3RhdGUubm9uZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXRBY3RpdmVDZWxsKGFjdGl2ZUNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgpIHtcbiAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLmFjdGl2ZUNlbGwgPSBhY3RpdmVDZWxsO1xuICAgIH1cblxuICAgIHNlbGVjdEZpZWxkKGZpZWxkSWQ6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLmhhcyhmaWVsZElkKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkRmllbGRzLmFkZChmaWVsZElkKTtcbiAgICB9XG5cbiAgICBzZWxlY3RSZWNvcmQocmVjb3JkSWQ6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3Jkcy5oYXMocmVjb3JkSWQpKSB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmRlbGV0ZShyZWNvcmRJZCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzLmFkZChyZWNvcmRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRSZWNvcmRzID0gdGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLnNlbGVjdGVkUmVjb3JkcztcbiAgICAgICAgdGhpcy5haVRhYmxlLnNlbGVjdGlvbi5zZXQoe1xuICAgICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiBzZWxlY3RlZFJlY29yZHMsXG4gICAgICAgICAgICBzZWxlY3RlZEZpZWxkczogbmV3IFNldCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRDZWxsczogbmV3IFNldCgpLFxuICAgICAgICAgICAgYWN0aXZlQ2VsbDogbnVsbCxcbiAgICAgICAgICAgIHNlbGVjdEFsbFN0YXRlOiB0aGlzLnNlbGVjdEFsbFN0YXRlKClcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdG9nZ2xlU2VsZWN0QWxsKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFpVGFibGUucmVjb3JkcygpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWlUYWJsZS5zZWxlY3Rpb24uc2V0KHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5haVRhYmxlLnNlbGVjdGlvbigpLFxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RBbGxTdGF0ZTogQUlUYWJsZVNlbGVjdEFsbFN0YXRlLmFsbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFpVGFibGUucmVjb3JkcygpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RSZWNvcmQoaXRlbS5faWQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlU2VsZWN0KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50Py50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2VsbERvbSA9IHRhcmdldC5jbG9zZXN0KCcuZ3JpZC1jZWxsJyk7XG4gICAgICAgIGNvbnN0IGNvbERvbSA9IHRhcmdldC5jbG9zZXN0KCcuZ3JpZC1maWVsZCcpO1xuICAgICAgICBjb25zdCBjaGVja2JveCA9IHRhcmdldC50YWdOYW1lID09PSAnSU5QVVQnICYmICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudHlwZSA9PT0gJ2NoZWNrYm94JyAmJiB0YXJnZXQuY2xvc2VzdCgnLmdyaWQtY2hlY2tib3gnKTtcbiAgICAgICAgY29uc3QgZmllbGRBY3Rpb24gPSB0YXJnZXQuY2xvc2VzdCgnLmdyaWQtZmllbGQtYWN0aW9uJyk7XG4gICAgICAgIGlmIChjZWxsRG9tKSB7XG4gICAgICAgICAgICBjb25zdCBmaWVsZElkID0gY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ2ZpZWxkSWQnKTtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZElkID0gY2VsbERvbS5nZXRBdHRyaWJ1dGUoJ3JlY29yZElkJyk7XG4gICAgICAgICAgICBmaWVsZElkICYmIHJlY29yZElkICYmIHRoaXMuc2VsZWN0Q2VsbHMoW3JlY29yZElkLCBmaWVsZElkXSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbERvbSAmJiAhZmllbGRBY3Rpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkSWQgPSBjb2xEb20uZ2V0QXR0cmlidXRlKCdmaWVsZElkJyk7XG4gICAgICAgICAgICBmaWVsZElkICYmIHRoaXMuc2VsZWN0RmllbGQoZmllbGRJZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFjZWxsRG9tICYmICFjb2xEb20gJiYgIWNoZWNrYm94KSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RDZWxscyhzdGFydENlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgsIGVuZENlbGw/OiBBSVJlY29yZEZpZWxkSWRQYXRoKSB7XG4gICAgICAgIGNvbnN0IFtzdGFydFJlY29yZElkLCBzdGFydEZpZWxkSWRdID0gc3RhcnRDZWxsO1xuICAgICAgICBjb25zdCByZWNvcmRzID0gdGhpcy5haVRhYmxlLnJlY29yZHMoKTtcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5haVRhYmxlLmZpZWxkcygpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICAgICAgaWYgKCFlbmRDZWxsKSB7XG4gICAgICAgICAgICBzZWxlY3RlZENlbGxzLmFkZChgJHtzdGFydFJlY29yZElkfToke3N0YXJ0RmllbGRJZH1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IFtlbmRSZWNvcmRJZCwgZW5kRmllbGRJZF0gPSBlbmRDZWxsO1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydFJvd0luZGV4ID0gcmVjb3Jkcy5maW5kSW5kZXgoKHJlY29yZCkgPT4gcmVjb3JkLl9pZCA9PT0gc3RhcnRSZWNvcmRJZCk7XG4gICAgICAgICAgICBjb25zdCBlbmRSb3dJbmRleCA9IHJlY29yZHMuZmluZEluZGV4KChyZWNvcmQpID0+IHJlY29yZC5faWQgPT09IGVuZFJlY29yZElkKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Q29sSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGQuX2lkID09PSBzdGFydEZpZWxkSWQpO1xuICAgICAgICAgICAgY29uc3QgZW5kQ29sSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGQuX2lkID09PSBlbmRGaWVsZElkKTtcblxuICAgICAgICAgICAgY29uc3QgbWluUm93SW5kZXggPSBNYXRoLm1pbihzdGFydFJvd0luZGV4LCBlbmRSb3dJbmRleCk7XG4gICAgICAgICAgICBjb25zdCBtYXhSb3dJbmRleCA9IE1hdGgubWF4KHN0YXJ0Um93SW5kZXgsIGVuZFJvd0luZGV4KTtcbiAgICAgICAgICAgIGNvbnN0IG1pbkNvbEluZGV4ID0gTWF0aC5taW4oc3RhcnRDb2xJbmRleCwgZW5kQ29sSW5kZXgpO1xuICAgICAgICAgICAgY29uc3QgbWF4Q29sSW5kZXggPSBNYXRoLm1heChzdGFydENvbEluZGV4LCBlbmRDb2xJbmRleCk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBtaW5Sb3dJbmRleDsgaSA8PSBtYXhSb3dJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IG1pbkNvbEluZGV4OyBqIDw9IG1heENvbEluZGV4OyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDZWxscy5hZGQoYCR7cmVjb3Jkc1tpXS5faWR9OiR7ZmllbGRzW2pdLl9pZH1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuc2V0QWN0aXZlQ2VsbChzdGFydENlbGwpO1xuICAgICAgICB0aGlzLmFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRDZWxscyA9IHNlbGVjdGVkQ2VsbHM7XG4gICAgfVxufVxuIl19
@@ -13,4 +13,10 @@ export var AITableAreaType;
13
13
  AITableAreaType["grid"] = "grid";
14
14
  AITableAreaType["none"] = "none";
15
15
  })(AITableAreaType || (AITableAreaType = {}));
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3R5cGVzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNERBLE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDNUIsbUNBQVcsQ0FBQTtJQUNYLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBZ0JELE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDeEIsdUNBQW1CLENBQUE7SUFDbkIsMkNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFlRCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICduZ3gtdGV0aHlzL3R5cGVzJztcbmltcG9ydCB7XG4gICAgQUlSZWNvcmRGaWVsZElkUGF0aCxcbiAgICBBSVRhYmxlLFxuICAgIEFJVGFibGVGaWVsZCxcbiAgICBBSVRhYmxlRmllbGRUeXBlLFxuICAgIEFJVGFibGVSZWNvcmQsXG4gICAgQ29vcmRpbmF0ZSxcbiAgICBGaWVsZFZhbHVlLFxuICAgIFVwZGF0ZUZpZWxkVmFsdWVPcHRpb25zXG59IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkTWVudUl0ZW0gfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IEFJVGFibGVMaW5lYXJSb3cgfSBmcm9tICcuL3Jvdyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hIHtcbiAgICBlZGl0b3I/OiBhbnk7XG4gICAgdHJhbnNmb3JtPzogKGZpZWxkOiBBSVRhYmxlRmllbGQsIHZhbHVlOiBGaWVsZFZhbHVlKSA9PiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZUdyaWREYXRhIHtcbiAgICB0eXBlOiAnZ3JpZCc7XG4gICAgZmllbGRzOiBBSVRhYmxlRmllbGRbXTtcbiAgICByZWNvcmRzOiBBSVRhYmxlUmVjb3JkW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVNlbGVjdGlvbiB7XG4gICAgc2VsZWN0ZWRSZWNvcmRzOiBTZXQ8c3RyaW5nPjsgLy8gYCR7cmVjb3JkSWR9YFxuICAgIHNlbGVjdGVkRmllbGRzOiBTZXQ8c3RyaW5nPjsgLy8gYCR7ZmllbGRJZH1gXG4gICAgc2VsZWN0ZWRDZWxsczogU2V0PHN0cmluZz47IC8vIGAke3JlY29yZElkfToke2ZpZWxkSWR9YFxuICAgIGFjdGl2ZUNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGggfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJRmllbGRDb25maWcge1xuICAgIGZpZWxkUmVuZGVyZXJzPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hPj47XG4gICAgZmllbGRTZXR0aW5nQ29tcG9uZW50PzogYW55O1xuICAgIGZpZWxkTWVudXM/OiBBSVRhYmxlRmllbGRNZW51SXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVVc2VySW5mbyB7XG4gICAgdWlkPzogc3RyaW5nO1xuICAgIGRpc3BsYXlfbmFtZT86IHN0cmluZztcbiAgICBhdmF0YXI/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVSZWZlcmVuY2VzIHtcbiAgICBtZW1iZXJzOiBEaWN0aW9uYXJ5PEFJVGFibGVVc2VySW5mbz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVJlbmRlcmVyQ29uZmlnIHtcbiAgICBhaVRhYmxlOiBBSVRhYmxlO1xuICAgIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG4gICAgY29vcmRpbmF0ZTogQ29vcmRpbmF0ZTtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIGNvbnRhaW5lckhlaWdodDogbnVtYmVyO1xuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZVJvd0NvbHVtblR5cGUge1xuICAgIHJvdyA9ICdyb3cnLFxuICAgIGNvbHVtbiA9ICdjb2x1bW4nXG59XG5cbmV4cG9ydCB0eXBlIEFJVGFibGVTaXplTWFwID0gUmVjb3JkPG51bWJlciwgbnVtYmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlQ29vcmRpbmF0ZSB7XG4gICAgcm93Q291bnQ6IG51bWJlcjtcbiAgICBjb2x1bW5Db3VudDogbnVtYmVyO1xuICAgIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG4gICAgcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcm93SW5pdFNpemU/OiBudW1iZXI7XG4gICAgcm93SW5kaWNlc1NpemVNYXA6IEFJVGFibGVTaXplTWFwO1xuICAgIGNvbHVtbkluZGljZXNTaXplTWFwOiBBSVRhYmxlU2l6ZU1hcDtcbiAgICBjb2x1bW5Jbml0U2l6ZT86IG51bWJlcjtcbiAgICBmcm96ZW5Db2x1bW5Db3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZUNoZWNrVHlwZSB7XG4gICAgY2hlY2tlZCA9ICdjaGVja2VkJyxcbiAgICB1bmNoZWNrZWQgPSAndW5jaGVja2VkJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVTY3JvbGxTdGF0ZSB7XG4gICAgc2Nyb2xsVG9wOiBudW1iZXI7XG4gICAgc2Nyb2xsTGVmdDogbnVtYmVyO1xuICAgIGlzU2Nyb2xsaW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbEFjdGlvbk9wdGlvbnMge1xuICAgIGRlbHRhWDogbnVtYmVyO1xuICAgIGRlbHRhWTogbnVtYmVyO1xuICAgIHNoaWZ0S2V5OiBib29sZWFuO1xuICAgIGNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZUFyZWFUeXBlIHtcbiAgICBncmlkID0gJ2dyaWQnLFxuICAgIG5vbmUgPSAnbm9uZSdcbn1cblxuZXhwb3J0IHR5cGUgQUlUYWJsZVBvaW50UG9zaXRpb24gPSB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbiAgICBhcmVhVHlwZTogQUlUYWJsZUFyZWFUeXBlO1xuICAgIHRhcmdldE5hbWU6IHN0cmluZztcbiAgICByZWFsVGFyZ2V0TmFtZTogc3RyaW5nO1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgICBvZmZzZXRMZWZ0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVFZGl0UG9zaXRpb24ge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlT3BlbkVkaXRPcHRpb25zIHtcbiAgICByZWNvcmRJZDogc3RyaW5nO1xuICAgIGZpZWxkSWQ6IHN0cmluZztcbiAgICBjb29yZGluYXRlOiBDb29yZGluYXRlO1xuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzO1xuICAgIGNvbnRhaW5lcj86IEhUTUxEaXZFbGVtZW50O1xuICAgIGlzSG92ZXJFZGl0PzogYm9vbGVhbjtcbiAgICB1cGRhdGVGaWVsZFZhbHVlOiAob3B0aW9uczogVXBkYXRlRmllbGRWYWx1ZU9wdGlvbnM8YW55PikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlQ29udGV4dCB7XG4gICAgbGluZWFyUm93czogU2lnbmFsPEFJVGFibGVMaW5lYXJSb3dbXT47XG4gICAgcG9pbnRQb3NpdGlvbjogV3JpdGFibGVTaWduYWw8QUlUYWJsZVBvaW50UG9zaXRpb24+O1xuICAgIHNjcm9sbFN0YXRlOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlU2Nyb2xsU3RhdGU+O1xuICAgIHNjcm9sbEFjdGlvbjogKG9wdGlvbnM6IFNjcm9sbEFjdGlvbk9wdGlvbnMpID0+IHZvaWQ7XG4gICAgdmlzaWJsZUNvbHVtbnNJbmRleE1hcDogU2lnbmFsPE1hcDxzdHJpbmcsIG51bWJlcj4+O1xuICAgIHZpc2libGVSb3dzSW5kZXhNYXA6IFNpZ25hbDxNYXA8c3RyaW5nLCBudW1iZXI+PjtcbiAgICBmcm96ZW5Db2x1bW5Db3VudDogU2lnbmFsPG51bWJlcj47XG4gICAgcmVmZXJlbmNlczogU2lnbmFsPEFJVGFibGVSZWZlcmVuY2VzPjtcbn1cbiJdfQ==
16
+ export var AITableSelectAllState;
17
+ (function (AITableSelectAllState) {
18
+ AITableSelectAllState["all"] = "all";
19
+ AITableSelectAllState["partial"] = "partial";
20
+ AITableSelectAllState["none"] = "none";
21
+ })(AITableSelectAllState || (AITableSelectAllState = {}));
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3R5cGVzL2dyaWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkRBLE1BQU0sQ0FBTixJQUFZLG9CQUdYO0FBSEQsV0FBWSxvQkFBb0I7SUFDNUIsbUNBQVcsQ0FBQTtJQUNYLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBZ0JELE1BQU0sQ0FBTixJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDeEIsdUNBQW1CLENBQUE7SUFDbkIsMkNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQUhXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFHM0I7QUFlRCxNQUFNLENBQU4sSUFBWSxlQUdYO0FBSEQsV0FBWSxlQUFlO0lBQ3ZCLGdDQUFhLENBQUE7SUFDYixnQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxlQUFlLEtBQWYsZUFBZSxRQUcxQjtBQTJDRCxNQUFNLENBQU4sSUFBWSxxQkFJWDtBQUpELFdBQVkscUJBQXFCO0lBQzdCLG9DQUFXLENBQUE7SUFDWCw0Q0FBbUIsQ0FBQTtJQUNuQixzQ0FBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBSWhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ25neC10ZXRoeXMvdHlwZXMnO1xuaW1wb3J0IHtcbiAgICBBSVJlY29yZEZpZWxkSWRQYXRoLFxuICAgIEFJVGFibGUsXG4gICAgQUlUYWJsZUZpZWxkLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZVJlY29yZCxcbiAgICBDb29yZGluYXRlLFxuICAgIEZpZWxkVmFsdWUsXG4gICAgVXBkYXRlRmllbGRWYWx1ZU9wdGlvbnNcbn0gZnJvbSAnLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGRNZW51SXRlbSB9IGZyb20gJy4vZmllbGQnO1xuaW1wb3J0IHsgQUlUYWJsZUxpbmVhclJvdyB9IGZyb20gJy4vcm93JztcblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlR3JpZENlbGxSZW5kZXJTY2hlbWEge1xuICAgIGVkaXRvcj86IGFueTtcbiAgICB0cmFuc2Zvcm0/OiAoZmllbGQ6IEFJVGFibGVGaWVsZCwgdmFsdWU6IEZpZWxkVmFsdWUpID0+IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlR3JpZERhdGEge1xuICAgIHR5cGU6ICdncmlkJztcbiAgICBmaWVsZHM6IEFJVGFibGVGaWVsZFtdO1xuICAgIHJlY29yZHM6IEFJVGFibGVSZWNvcmRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlU2VsZWN0aW9uIHtcbiAgICBzZWxlY3RlZFJlY29yZHM6IFNldDxzdHJpbmc+OyAvLyBgJHtyZWNvcmRJZH1gXG4gICAgc2VsZWN0ZWRGaWVsZHM6IFNldDxzdHJpbmc+OyAvLyBgJHtmaWVsZElkfWBcbiAgICBzZWxlY3RlZENlbGxzOiBTZXQ8c3RyaW5nPjsgLy8gYCR7cmVjb3JkSWR9OiR7ZmllbGRJZH1gXG4gICAgYWN0aXZlQ2VsbDogQUlSZWNvcmRGaWVsZElkUGF0aCB8IG51bGw7XG4gICAgc2VsZWN0QWxsU3RhdGU6IEFJVGFibGVTZWxlY3RBbGxTdGF0ZTsgLy8gJ2FsbCcsJ3BhcnRpYWwnLCdub25lJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJRmllbGRDb25maWcge1xuICAgIGZpZWxkUmVuZGVyZXJzPzogUGFydGlhbDxSZWNvcmQ8QUlUYWJsZUZpZWxkVHlwZSwgQUlUYWJsZUdyaWRDZWxsUmVuZGVyU2NoZW1hPj47XG4gICAgZmllbGRTZXR0aW5nQ29tcG9uZW50PzogYW55O1xuICAgIGZpZWxkTWVudXM/OiBBSVRhYmxlRmllbGRNZW51SXRlbVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVVc2VySW5mbyB7XG4gICAgdWlkPzogc3RyaW5nO1xuICAgIGRpc3BsYXlfbmFtZT86IHN0cmluZztcbiAgICBhdmF0YXI/OiBzdHJpbmc7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVSZWZlcmVuY2VzIHtcbiAgICBtZW1iZXJzOiBEaWN0aW9uYXJ5PEFJVGFibGVVc2VySW5mbz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVJlbmRlcmVyQ29uZmlnIHtcbiAgICBhaVRhYmxlOiBBSVRhYmxlO1xuICAgIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG4gICAgY29vcmRpbmF0ZTogQ29vcmRpbmF0ZTtcbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIGNvbnRhaW5lckhlaWdodDogbnVtYmVyO1xuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZVJvd0NvbHVtblR5cGUge1xuICAgIHJvdyA9ICdyb3cnLFxuICAgIGNvbHVtbiA9ICdjb2x1bW4nXG59XG5cbmV4cG9ydCB0eXBlIEFJVGFibGVTaXplTWFwID0gUmVjb3JkPG51bWJlciwgbnVtYmVyPjtcblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlQ29vcmRpbmF0ZSB7XG4gICAgcm93Q291bnQ6IG51bWJlcjtcbiAgICBjb2x1bW5Db3VudDogbnVtYmVyO1xuICAgIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG4gICAgcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcm93SW5pdFNpemU/OiBudW1iZXI7XG4gICAgcm93SW5kaWNlc1NpemVNYXA6IEFJVGFibGVTaXplTWFwO1xuICAgIGNvbHVtbkluZGljZXNTaXplTWFwOiBBSVRhYmxlU2l6ZU1hcDtcbiAgICBjb2x1bW5Jbml0U2l6ZT86IG51bWJlcjtcbiAgICBmcm96ZW5Db2x1bW5Db3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZUNoZWNrVHlwZSB7XG4gICAgY2hlY2tlZCA9ICdjaGVja2VkJyxcbiAgICB1bmNoZWNrZWQgPSAndW5jaGVja2VkJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVTY3JvbGxTdGF0ZSB7XG4gICAgc2Nyb2xsVG9wOiBudW1iZXI7XG4gICAgc2Nyb2xsTGVmdDogbnVtYmVyO1xuICAgIGlzU2Nyb2xsaW5nOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjcm9sbEFjdGlvbk9wdGlvbnMge1xuICAgIGRlbHRhWDogbnVtYmVyO1xuICAgIGRlbHRhWTogbnVtYmVyO1xuICAgIHNoaWZ0S2V5OiBib29sZWFuO1xuICAgIGNhbGxiYWNrPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGVudW0gQUlUYWJsZUFyZWFUeXBlIHtcbiAgICBncmlkID0gJ2dyaWQnLFxuICAgIG5vbmUgPSAnbm9uZSdcbn1cblxuZXhwb3J0IHR5cGUgQUlUYWJsZVBvaW50UG9zaXRpb24gPSB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbiAgICBhcmVhVHlwZTogQUlUYWJsZUFyZWFUeXBlO1xuICAgIHRhcmdldE5hbWU6IHN0cmluZztcbiAgICByZWFsVGFyZ2V0TmFtZTogc3RyaW5nO1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgICBvZmZzZXRMZWZ0OiBudW1iZXI7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVFZGl0UG9zaXRpb24ge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gICAgd2lkdGg6IG51bWJlcjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlT3BlbkVkaXRPcHRpb25zIHtcbiAgICByZWNvcmRJZDogc3RyaW5nO1xuICAgIGZpZWxkSWQ6IHN0cmluZztcbiAgICBjb29yZGluYXRlOiBDb29yZGluYXRlO1xuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzO1xuICAgIGNvbnRhaW5lcj86IEhUTUxEaXZFbGVtZW50O1xuICAgIGlzSG92ZXJFZGl0PzogYm9vbGVhbjtcbiAgICB1cGRhdGVGaWVsZFZhbHVlOiAob3B0aW9uczogVXBkYXRlRmllbGRWYWx1ZU9wdGlvbnM8YW55PikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlQ29udGV4dCB7XG4gICAgbGluZWFyUm93czogU2lnbmFsPEFJVGFibGVMaW5lYXJSb3dbXT47XG4gICAgcG9pbnRQb3NpdGlvbjogV3JpdGFibGVTaWduYWw8QUlUYWJsZVBvaW50UG9zaXRpb24+O1xuICAgIHNjcm9sbFN0YXRlOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlU2Nyb2xsU3RhdGU+O1xuICAgIHNjcm9sbEFjdGlvbjogKG9wdGlvbnM6IFNjcm9sbEFjdGlvbk9wdGlvbnMpID0+IHZvaWQ7XG4gICAgdmlzaWJsZUNvbHVtbnNJbmRleE1hcDogU2lnbmFsPE1hcDxzdHJpbmcsIG51bWJlcj4+O1xuICAgIHZpc2libGVSb3dzSW5kZXhNYXA6IFNpZ25hbDxNYXA8c3RyaW5nLCBudW1iZXI+PjtcbiAgICBmcm96ZW5Db2x1bW5Db3VudDogU2lnbmFsPG51bWJlcj47XG4gICAgcmVmZXJlbmNlczogU2lnbmFsPEFJVGFibGVSZWZlcmVuY2VzPjtcbiAgICBhaUZpZWxkQ29uZmlnOiBTaWduYWw8QUlGaWVsZENvbmZpZyB8IHVuZGVmaW5lZD47XG59XG5cbmV4cG9ydCBlbnVtIEFJVGFibGVTZWxlY3RBbGxTdGF0ZSB7XG4gICAgYWxsID0gJ2FsbCcsXG4gICAgcGFydGlhbCA9ICdwYXJ0aWFsJyxcbiAgICBub25lID0gJ25vbmUnXG59XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, computed, output, inject, ElementRef, Component, ChangeDetectionStrategy, Input, EventEmitter, Output, ChangeDetectorRef, ViewChild, HostListener, Pipe, input, Renderer2, model, booleanAttribute, Injectable, DestroyRef, NgZone, InjectionToken, effect, ViewContainerRef, viewChild, afterNextRender } from '@angular/core';
2
+ import { signal, computed, output, inject, ElementRef, Component, ChangeDetectionStrategy, Input, EventEmitter, Output, ChangeDetectorRef, ViewChild, HostListener, Pipe, input, Renderer2, model, booleanAttribute, Injectable, DestroyRef, NgZone, InjectionToken, effect, ViewContainerRef, viewChild, afterNextRender, untracked } from '@angular/core';
3
3
  import * as i1$1 from 'ngx-tethys/popover';
4
4
  import { ThyPopoverRef, ThyPopover, ThyPopoverModule } from 'ngx-tethys/popover';
5
5
  import ObjectID from 'bson-objectid';
@@ -340,6 +340,12 @@ var AITableAreaType;
340
340
  AITableAreaType["grid"] = "grid";
341
341
  AITableAreaType["none"] = "none";
342
342
  })(AITableAreaType || (AITableAreaType = {}));
343
+ var AITableSelectAllState;
344
+ (function (AITableSelectAllState) {
345
+ AITableSelectAllState["all"] = "all";
346
+ AITableSelectAllState["partial"] = "partial";
347
+ AITableSelectAllState["none"] = "none";
348
+ })(AITableSelectAllState || (AITableSelectAllState = {}));
343
349
 
344
350
  var AITableRowType;
345
351
  (function (AITableRowType) {
@@ -707,7 +713,8 @@ function createAITable(records, fields) {
707
713
  selectedRecords: new Set(),
708
714
  selectedFields: new Set(),
709
715
  selectedCells: new Set(),
710
- activeCell: null
716
+ activeCell: null,
717
+ selectAllState: AITableSelectAllState.none
711
718
  }),
712
719
  keywordsMatchedCells: signal(new Set()),
713
720
  recordsMap: computed(() => {
@@ -801,7 +808,7 @@ const AITableQueries = {
801
808
 
802
809
  class RendererContext {
803
810
  constructor(options) {
804
- const { linearRows, pointPosition, scrollState, visibleColumnsIndexMap, visibleRowsIndexMap, frozenColumnCount, references, scrollAction } = options;
811
+ const { linearRows, pointPosition, scrollState, visibleColumnsIndexMap, visibleRowsIndexMap, frozenColumnCount, references, aiFieldConfig, scrollAction } = options;
805
812
  this.linearRows = linearRows;
806
813
  this.pointPosition = pointPosition;
807
814
  this.scrollState = scrollState;
@@ -810,6 +817,7 @@ class RendererContext {
810
817
  this.visibleRowsIndexMap = visibleRowsIndexMap;
811
818
  this.frozenColumnCount = frozenColumnCount;
812
819
  this.references = references;
820
+ this.aiFieldConfig = aiFieldConfig;
813
821
  }
814
822
  setPointPosition(position) {
815
823
  const oldPosition = this.pointPosition();
@@ -1565,7 +1573,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1565
1573
  }] } });
1566
1574
 
1567
1575
  class AITableGridSelectionService {
1568
- constructor() { }
1576
+ constructor() {
1577
+ this.selectAllState = computed(() => {
1578
+ const selectedRecords = this.aiTable.selection().selectedRecords;
1579
+ return selectedRecords.size === this.aiTable.records().length
1580
+ ? AITableSelectAllState.all
1581
+ : selectedRecords.size === 0
1582
+ ? AITableSelectAllState.none
1583
+ : AITableSelectAllState.partial;
1584
+ });
1585
+ }
1569
1586
  initialize(aiTable) {
1570
1587
  this.aiTable = aiTable;
1571
1588
  }
@@ -1574,7 +1591,8 @@ class AITableGridSelectionService {
1574
1591
  selectedRecords: new Set(),
1575
1592
  selectedFields: new Set(),
1576
1593
  selectedCells: new Set(),
1577
- activeCell: null
1594
+ activeCell: null,
1595
+ selectAllState: AITableSelectAllState.none
1578
1596
  });
1579
1597
  }
1580
1598
  setActiveCell(activeCell) {
@@ -1594,19 +1612,31 @@ class AITableGridSelectionService {
1594
1612
  else {
1595
1613
  this.aiTable.selection().selectedRecords.add(recordId);
1596
1614
  }
1615
+ const selectedRecords = this.aiTable.selection().selectedRecords;
1597
1616
  this.aiTable.selection.set({
1598
- selectedRecords: this.aiTable.selection().selectedRecords,
1617
+ selectedRecords: selectedRecords,
1599
1618
  selectedFields: new Set(),
1600
1619
  selectedCells: new Set(),
1601
- activeCell: null
1620
+ activeCell: null,
1621
+ selectAllState: this.selectAllState()
1602
1622
  });
1603
1623
  }
1604
1624
  toggleSelectAll(checked) {
1605
- this.clearSelection();
1606
1625
  if (checked) {
1607
- this.aiTable.records().forEach((item) => {
1608
- this.selectRecord(item._id);
1609
- });
1626
+ if (this.aiTable.records().length === 0) {
1627
+ this.aiTable.selection.set({
1628
+ ...this.aiTable.selection(),
1629
+ selectAllState: AITableSelectAllState.all
1630
+ });
1631
+ }
1632
+ else {
1633
+ this.aiTable.records().forEach((item) => {
1634
+ this.selectRecord(item._id);
1635
+ });
1636
+ }
1637
+ }
1638
+ else {
1639
+ this.clearSelection();
1610
1640
  }
1611
1641
  }
1612
1642
  updateSelect(event) {
@@ -3042,6 +3072,10 @@ class AITableGridEventService {
3042
3072
  });
3043
3073
  if (this.cellEditorPopoverRef) {
3044
3074
  const wheelEvent = fromEvent(this.cellEditorPopoverRef.componentInstance.elementRef.nativeElement, 'wheel').subscribe((event) => {
3075
+ const field = aiTable.fieldsMap()[fieldId];
3076
+ if (field.type === AITableFieldType.text || field.type === AITableFieldType.richText) {
3077
+ return;
3078
+ }
3045
3079
  event.preventDefault();
3046
3080
  this.aiTable.context?.scrollAction({
3047
3081
  deltaX: event.deltaX,
@@ -5404,20 +5438,21 @@ class CellDrawer extends Drawer {
5404
5438
  renderCellRate(render, ctx) {
5405
5439
  const { x, y, transformValue: _cellValue } = render;
5406
5440
  const max = 5;
5407
- const cellValue = _cellValue || 0;
5441
+ const cellValue = _cellValue;
5408
5442
  const size = AI_TABLE_CELL_EMOJI_SIZE;
5443
+ const isEmpty = isNil(cellValue);
5409
5444
  return [...Array(max).keys()].map((item, index) => {
5410
5445
  const value = index + 1;
5411
5446
  const checked = value <= cellValue;
5412
5447
  const iconX = index * size + AI_TABLE_CELL_PADDING + index * AI_TABLE_CELL_EMOJI_PADDING;
5413
5448
  const iconY = (AI_TABLE_ROW_BLANK_HEIGHT - size) / 2;
5414
- if (ctx && checked) {
5449
+ if (ctx && (checked || isEmpty)) {
5415
5450
  this.path({
5416
5451
  x: x + iconX,
5417
5452
  y: y + iconY,
5418
5453
  size: 22,
5419
5454
  data: StarFill,
5420
- fill: this.colors.waring,
5455
+ fill: isEmpty ? this.colors.gray100 : this.colors.waring,
5421
5456
  scaleX: 1.14,
5422
5457
  scaleY: 1.14
5423
5458
  });
@@ -5427,8 +5462,11 @@ class CellDrawer extends Drawer {
5427
5462
  renderCellProgress(render, ctx) {
5428
5463
  const { x, y, transformValue, columnWidth, style } = render;
5429
5464
  const colors = AITable.getColors();
5430
- const cellText = transformValue;
5431
- if (cellText == null || !___default.isNumber(cellText)) {
5465
+ let cellValue = transformValue;
5466
+ if (isNil(cellValue)) {
5467
+ cellValue = 0;
5468
+ }
5469
+ if (!___default.isNumber(cellValue)) {
5432
5470
  return;
5433
5471
  }
5434
5472
  const width = columnWidth - 2 * AI_TABLE_CELL_PADDING - AI_TABLE_PROGRESS_TEXT_Width;
@@ -5447,7 +5485,7 @@ class CellDrawer extends Drawer {
5447
5485
  fill: colors.gray200
5448
5486
  });
5449
5487
  // 计算并绘制进度
5450
- const progressWidth = (transformValue / 100) * width;
5488
+ const progressWidth = (cellValue / 100) * width;
5451
5489
  this.rect({
5452
5490
  x: x + offsetX,
5453
5491
  y: y + offsetY,
@@ -5459,7 +5497,7 @@ class CellDrawer extends Drawer {
5459
5497
  this.text({
5460
5498
  x: x + offsetX + width + AI_TABLE_TEXT_GAP,
5461
5499
  y: y + textOffsetY,
5462
- text: `${transformValue}%`,
5500
+ text: `${cellValue}%`,
5463
5501
  fillStyle: colors.gray800
5464
5502
  });
5465
5503
  }
@@ -5563,6 +5601,18 @@ const cellDrawer = new CellDrawer();
5563
5601
  * 它继承自 Layout 类,包含了用于绘制行中单元格(尤其是首列和尾列)的几个方法
5564
5602
  */
5565
5603
  class RecordRowLayout extends Layout {
5604
+ renderAddFieldBlank({ isHoverRow, isCheckedRow }) {
5605
+ super.renderAddFieldBlank({ isHoverRow, isCheckedRow });
5606
+ const rowHeight = this.rowHeight;
5607
+ const startX = this.x + this.columnWidth;
5608
+ const lineWidth = this.containerWidth - startX < AI_TABLE_FIELD_ADD_BUTTON_WIDTH ? AI_TABLE_FIELD_ADD_BUTTON_WIDTH : this.containerWidth - startX;
5609
+ this.line({
5610
+ x: startX,
5611
+ y: this.y,
5612
+ points: [0, rowHeight, lineWidth, rowHeight],
5613
+ stroke: this.colors.gray200
5614
+ });
5615
+ }
5566
5616
  // 首列
5567
5617
  renderFirstCell({ row, style, isHoverRow, isCheckedRow }) {
5568
5618
  if (!this.isFirst)
@@ -5611,6 +5661,9 @@ class RecordRowLayout extends Layout {
5611
5661
  verticalAlign: DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE
5612
5662
  });
5613
5663
  }
5664
+ if (this.isLast) {
5665
+ this.renderAddFieldBlank({ isHoverRow, isCheckedRow });
5666
+ }
5614
5667
  }
5615
5668
  // 尾列
5616
5669
  renderLastCell({ style, isHoverRow, isCheckedRow }) {
@@ -5627,17 +5680,7 @@ class RecordRowLayout extends Layout {
5627
5680
  fill: fill || colors.white,
5628
5681
  stroke: stroke || colors.gray200
5629
5682
  });
5630
- // 延伸到 FIELD_ADD_BUTTON
5631
- super.renderAddFieldBlank({ isHoverRow, isCheckedRow });
5632
- const rowHeight = this.rowHeight;
5633
- const startX = this.x + this.columnWidth;
5634
- const lineWidth = this.containerWidth - startX < AI_TABLE_FIELD_ADD_BUTTON_WIDTH ? AI_TABLE_FIELD_ADD_BUTTON_WIDTH : this.containerWidth - startX;
5635
- this.line({
5636
- x: startX,
5637
- y: this.y,
5638
- points: [0, rowHeight, lineWidth, rowHeight],
5639
- stroke: this.colors.gray200
5640
- });
5683
+ this.renderAddFieldBlank({ isHoverRow, isCheckedRow });
5641
5684
  }
5642
5685
  // 绘制中间的普通单元格
5643
5686
  renderCommonCell({ style }) {
@@ -6140,6 +6183,11 @@ const createColumnHeads = (config) => {
6140
6183
  };
6141
6184
  };
6142
6185
  const fieldHeads = [];
6186
+ const fieldMenus = config.aiTable.context?.aiFieldConfig()?.fieldMenus || [];
6187
+ let noMoreIcon = false;
6188
+ if (fieldMenus.length === 0) {
6189
+ noMoreIcon = true;
6190
+ }
6143
6191
  for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {
6144
6192
  if (columnIndex > columnCount - 1)
6145
6193
  break;
@@ -6158,7 +6206,7 @@ const createColumnHeads = (config) => {
6158
6206
  height: fieldHeadHeight,
6159
6207
  field,
6160
6208
  stroke: columnIndex === 0 ? colors.transparent : undefined,
6161
- iconVisible,
6209
+ iconVisible: noMoreIcon ? false : iconVisible,
6162
6210
  isSelected,
6163
6211
  isHoverIcon
6164
6212
  };
@@ -6174,8 +6222,8 @@ class AITableFrozenColumnHeads {
6174
6222
  return this.config().coordinate;
6175
6223
  });
6176
6224
  this.isChecked = computed(() => {
6177
- const { selection, records } = this.config().aiTable;
6178
- return selection().selectedRecords.size === records().length;
6225
+ // 目前只需要展示全部选中和空的状态
6226
+ return this.config().aiTable.selection().selectAllState === AITableSelectAllState.all;
6179
6227
  });
6180
6228
  this.fieldHeadHeight = computed(() => {
6181
6229
  return this.coordinate().rowInitSize;
@@ -6889,6 +6937,24 @@ class AITableGrid extends AITableGridBase {
6889
6937
  effect(() => {
6890
6938
  this.setKeywordsMatchedCells();
6891
6939
  }, { allowSignalWrites: true });
6940
+ effect(() => {
6941
+ const recordIdSet = new Set(this.aiTable.records().map((item) => item._id));
6942
+ untracked(() => {
6943
+ const selectedRecords = this.aiTable.selection().selectedRecords;
6944
+ for (const selectedRecordId of selectedRecords.values()) {
6945
+ if (!recordIdSet.has(selectedRecordId)) {
6946
+ selectedRecords.delete(selectedRecordId);
6947
+ }
6948
+ }
6949
+ this.aiTable.selection.update((item) => {
6950
+ return {
6951
+ ...item,
6952
+ selectedRecords,
6953
+ selectAllState: this.aiTableGridSelectionService.selectAllState()
6954
+ };
6955
+ });
6956
+ });
6957
+ }, { allowSignalWrites: true });
6892
6958
  }
6893
6959
  ngOnInit() {
6894
6960
  super.ngOnInit();
@@ -6906,6 +6972,7 @@ class AITableGrid extends AITableGridBase {
6906
6972
  scrollState: signal(DEFAULT_SCROLL_STATE),
6907
6973
  frozenColumnCount: this.frozenColumnCount,
6908
6974
  references: this.aiReferences,
6975
+ aiFieldConfig: this.aiFieldConfig,
6909
6976
  scrollAction: this.scrollAction
6910
6977
  });
6911
6978
  }
@@ -7034,7 +7101,7 @@ class AITableGrid extends AITableGridBase {
7034
7101
  return;
7035
7102
  }
7036
7103
  case AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX: {
7037
- const isChecked = this.aiTable.selection().selectedRecords.size === this.aiTable.records().length;
7104
+ const isChecked = this.aiTable.selection().selectAllState === AITableSelectAllState.all;
7038
7105
  this.toggleSelectAll(!isChecked);
7039
7106
  return;
7040
7107
  }
@@ -7223,5 +7290,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
7223
7290
  * Generated bundle index. Do not edit.
7224
7291
  */
7225
7292
 
7226
- export { AITable, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableCheckType, AITableContextMenu, AITableDomGrid, AITableFieldIsMultiplePipe, AITableFieldSetting, AITableFieldType, AITableFilterOperation, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableMemberType, AITableMouseDownType, AITableQueries, AITableRenderer, AITableRowColumnType, AITableRowType, AITableSelectOptionStyle, AITableStatType, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_Width, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AbstractEditCellEditor, AddOutlinedPath, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DepartmentOutlinedPath, Direction, FONT_SIZE_SM, FieldOptions, GRID_CELL_EDITOR_MAP, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RendererContext, RowHeight, SelectCellEditorComponent, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextMeasure, Unchecked, UserPipe, ViewOperationMap, WebOutlinedPath, buildGridData, buildGridLinearRows, castToString, compareNumber, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesSizeMap, getDefaultFieldValue, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getHoverEditorBoxOffset, getHoverEditorSpace, getMousePosition, getPlaceHolderCellsConfigs, getTargetName, getTextWidth, getVisibleRangeInfo, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isArrayField, isCellMatchKeywords, isEmpty, isMac, isNumberFiled, isSameFieldOption, isSystemField, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, scrollMax, setMouseStyle, shortIdCreator, shortIdsCreator, stringInclude, textDataCache, transformCellValue, zhIntlCollator };
7293
+ export { AITable, AITableAreaType, AITableAvatarSize, AITableAvatarType, AITableCheckType, AITableContextMenu, AITableDomGrid, AITableFieldIsMultiplePipe, AITableFieldSetting, AITableFieldType, AITableFilterOperation, AITableGrid, AITableGridEventService, AITableGridFieldService, AITableGridSelectionService, AITableMemberType, AITableMouseDownType, AITableQueries, AITableRenderer, AITableRowColumnType, AITableRowType, AITableSelectAllState, AITableSelectOptionStyle, AITableStatType, AI_TABLE_ACTION_COMMON_SIZE, AI_TABLE_BLANK, AI_TABLE_CELL, AI_TABLE_CELL_ACTIVE_BORDER_WIDTH, AI_TABLE_CELL_ADD_ITEM_BUTTON_SIZE, AI_TABLE_CELL_BORDER, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE, AI_TABLE_CELL_DELETE_ITEM_BUTTON_SIZE_OFFSET, AI_TABLE_CELL_EMOJI_PADDING, AI_TABLE_CELL_EMOJI_SIZE, AI_TABLE_CELL_MAX_ROW_COUNT, AI_TABLE_CELL_MEMBER_ITEM_HEIGHT, AI_TABLE_CELL_MEMBER_ITEM_PADDING, AI_TABLE_CELL_MEMBER_MAX_HEIGHT, AI_TABLE_CELL_MULTI_DOT_RADIUS, AI_TABLE_CELL_MULTI_ITEM_MARGIN_LEFT, AI_TABLE_CELL_MULTI_ITEM_MARGIN_TOP, AI_TABLE_CELL_MULTI_ITEM_MIN_WIDTH, AI_TABLE_CELL_MULTI_PADDING_LEFT, AI_TABLE_CELL_MULTI_PADDING_TOP, AI_TABLE_CELL_PADDING, AI_TABLE_COMMON_FONT_SIZE, AI_TABLE_DEFAULT_COLUMN_WIDTH, AI_TABLE_DOT_RADIUS, AI_TABLE_FIELD_ADD_BUTTON, AI_TABLE_FIELD_ADD_BUTTON_WIDTH, AI_TABLE_FIELD_HEAD, AI_TABLE_FIELD_HEAD_HEIGHT, AI_TABLE_FIELD_HEAD_ICON_GAP_SIZE, AI_TABLE_FIELD_HEAD_MORE, AI_TABLE_FIELD_HEAD_SELECT_CHECKBOX, AI_TABLE_FIELD_HEAD_TEXT_MIN_WIDTH, AI_TABLE_GRID_FIELD_SERVICE_MAP, AI_TABLE_ICON_COMMON_SIZE, AI_TABLE_MEMBER_AVATAR_SIZE, AI_TABLE_MEMBER_ITEM_AVATAR_MARGIN_RIGHT, AI_TABLE_MEMBER_ITEM_PADDING_RIGHT, AI_TABLE_MIN_TEXT_WIDTH, AI_TABLE_OFFSET, AI_TABLE_OPTION_ITEM_FONT_SIZE, AI_TABLE_OPTION_ITEM_HEIGHT, AI_TABLE_OPTION_ITEM_PADDING, AI_TABLE_OPTION_ITEM_RADIUS, AI_TABLE_PIECE_RADIUS, AI_TABLE_PIECE_WIDTH, AI_TABLE_POPOVER_LEFT_OFFSET, AI_TABLE_PREVENT_CLEAR_SELECTION_CLASS, AI_TABLE_PROGRESS_BAR_HEIGHT, AI_TABLE_PROGRESS_BAR_RADIUS, AI_TABLE_PROGRESS_TEXT_Width, AI_TABLE_ROW_ADD_BUTTON, AI_TABLE_ROW_BLANK_HEIGHT, AI_TABLE_ROW_HEAD, AI_TABLE_ROW_HEAD_SIZE, AI_TABLE_ROW_HEAD_WIDTH, AI_TABLE_ROW_HEIGHT, AI_TABLE_ROW_SELECT_CHECKBOX, AI_TABLE_SCROLL_BAR_PADDING, AI_TABLE_TAG_FONT_SIZE, AI_TABLE_TAG_PADDING, AI_TABLE_TEXT_GAP, AbstractEditCellEditor, AddOutlinedPath, Check, Colors, ColumnCalendarFilledPath, ColumnLinkOutlinedPath, ColumnMemberFilledPath, ColumnMultipleFillPath, ColumnNumberFilledPath, ColumnProgressFilledPath, ColumnRatingFilledPath, ColumnSelectFilledPath, ColumnTextFilledPath, Coordinate, DBL_CLICK_EDIT_TYPE, DEFAULT_FONT_FAMILY, DEFAULT_FONT_SIZE, DEFAULT_FONT_STYLE, DEFAULT_FONT_WEIGHT, DEFAULT_ICON_SHAPE, DEFAULT_ICON_SIZE, DEFAULT_POINT_POSITION, DEFAULT_SCROLL_STATE, DEFAULT_TEXT_ALIGN_CENTER, DEFAULT_TEXT_ALIGN_LEFT, DEFAULT_TEXT_ALIGN_RIGHT, DEFAULT_TEXT_DECORATION, DEFAULT_TEXT_ELLIPSIS, DEFAULT_TEXT_FILL, DEFAULT_TEXT_LINE_HEIGHT, DEFAULT_TEXT_LISTENING, DEFAULT_TEXT_MAX_CACHE, DEFAULT_TEXT_MAX_HEIGHT, DEFAULT_TEXT_SCALE, DEFAULT_TEXT_TRANSFORMS_ENABLED, DEFAULT_TEXT_VERTICAL_ALIGN_MIDDLE, DEFAULT_TEXT_VERTICAL_ALIGN_TOP, DEFAULT_TEXT_WRAP, DEFAULT_WRAP_TEXT_MAX_ROW, DateCellEditorComponent, DepartmentOutlinedPath, Direction, FONT_SIZE_SM, FieldOptions, GRID_CELL_EDITOR_MAP, IsSelectRecordPipe, LinkCellEditorComponent, MIN_COLUMN_WIDTH, MOUSEOVER_EDIT_TYPE, MemberSettingPipe, MoreStandOutlinedPath, NumberCellEditorComponent, ProgressEditorComponent, RatingCellEditorComponent, RendererContext, RowHeight, SelectCellEditorComponent, SelectOptionComponent, SelectOptionPipe, SelectOptionsPipe, SelectSettingPipe, StarFill, TextCellEditorComponent, TextMeasure, Unchecked, UserPipe, ViewOperationMap, WebOutlinedPath, buildGridData, buildGridLinearRows, castToString, compareNumber, compareString, createAITable, createActiveCellBorder, createCells, createDefaultField, createDefaultFieldName, generateTargetName, getAvatarBgColor, getAvatarShortName, getCellEditorBorderSpace, getCellHorizontalPosition, getColumnIndicesSizeMap, getDefaultFieldValue, getDetailByTargetName, getEditorBoxOffset, getEditorSpace, getFieldOptionByField, getHoverEditorBoxOffset, getHoverEditorSpace, getMousePosition, getPlaceHolderCellsConfigs, getTargetName, getTextWidth, getVisibleRangeInfo, handleMouseStyle, hasIntersect, idCreator, idsCreator, imageCache, isArrayField, isCellMatchKeywords, isEmpty, isMac, isNumberFiled, isSameFieldOption, isSystemField, isWindows, isWindowsOS, isWithinFrozenColumnBoundary, scrollMax, setMouseStyle, shortIdCreator, shortIdsCreator, stringInclude, textDataCache, transformCellValue, zhIntlCollator };
7227
7294
  //# sourceMappingURL=ai-table-grid.mjs.map