@ai-table/grid 0.0.31 → 0.0.32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. package/components/{field-property-editor/field-property-editor.component.d.ts → field-setting/field-setting.component.d.ts} +4 -4
  2. package/components/field-setting/field-setting.component.d.ts.map +1 -0
  3. package/components/{field-property-editor/field-property-editor.component.scss → field-setting/field-setting.component.scss} +1 -1
  4. package/components/index.d.ts +1 -1
  5. package/components/index.d.ts.map +1 -1
  6. package/core/context.d.ts +4 -2
  7. package/core/context.d.ts.map +1 -1
  8. package/core/coordinate.d.ts +3 -3
  9. package/core/coordinate.d.ts.map +1 -1
  10. package/core/types/ai-table.d.ts +2 -2
  11. package/core/types/ai-table.d.ts.map +1 -1
  12. package/core/utils/common.d.ts.map +1 -1
  13. package/esm2022/components/field-setting/field-setting.component.mjs +102 -0
  14. package/esm2022/components/index.mjs +2 -2
  15. package/esm2022/core/context.mjs +5 -3
  16. package/esm2022/core/coordinate.mjs +9 -9
  17. package/esm2022/core/types/ai-table.mjs +10 -3
  18. package/esm2022/core/utils/common.mjs +2 -3
  19. package/esm2022/dom-grid.component.mjs +3 -3
  20. package/esm2022/grid-base.component.mjs +2 -3
  21. package/esm2022/grid.component.mjs +10 -7
  22. package/esm2022/renderer/creations/create-active-cell-border.mjs +2 -2
  23. package/esm2022/renderer/drawers/cell-drawer.mjs +7 -8
  24. package/esm2022/renderer/drawers/drawer.mjs +5 -3
  25. package/esm2022/services/event.service.mjs +6 -3
  26. package/esm2022/services/field.service.mjs +4 -4
  27. package/esm2022/types/grid.mjs +1 -1
  28. package/esm2022/utils/cell.mjs +5 -5
  29. package/fesm2022/ai-table-grid.mjs +64 -54
  30. package/fesm2022/ai-table-grid.mjs.map +1 -1
  31. package/grid-base.component.d.ts.map +1 -1
  32. package/grid.component.d.ts +2 -1
  33. package/grid.component.d.ts.map +1 -1
  34. package/package.json +1 -1
  35. package/renderer/drawers/cell-drawer.d.ts.map +1 -1
  36. package/renderer/drawers/drawer.d.ts.map +1 -1
  37. package/services/event.service.d.ts.map +1 -1
  38. package/styles/styles.scss +1 -0
  39. package/types/grid.d.ts +6 -4
  40. package/types/grid.d.ts.map +1 -1
  41. package/utils/cell.d.ts +1 -1
  42. package/utils/cell.d.ts.map +1 -1
  43. package/components/field-property-editor/field-property-editor.component.d.ts.map +0 -1
  44. package/esm2022/components/field-property-editor/field-property-editor.component.mjs +0 -106
@@ -3,7 +3,7 @@ import { ThyFormValidatorConfig } from 'ngx-tethys/form';
3
3
  import { ThyPopoverRef } from 'ngx-tethys/popover';
4
4
  import { AITable, AITableField, AITableFieldOption, SetFieldOptions } from '../../core';
5
5
  import * as i0 from "@angular/core";
6
- export declare class AITableFieldPropertyEditor {
6
+ export declare class AITableFieldSetting {
7
7
  aiEditField: import("@angular/core").ModelSignal<AITableField>;
8
8
  aiTable: AITable;
9
9
  aiExternalTemplate: TemplateRef<any> | null;
@@ -19,8 +19,8 @@ export declare class AITableFieldPropertyEditor {
19
19
  selectFieldType(field: AITableFieldOption): void;
20
20
  editFieldProperty(): void;
21
21
  cancel(): void;
22
- static ɵfac: i0.ɵɵFactoryDeclaration<AITableFieldPropertyEditor, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<AITableFieldPropertyEditor, "ai-table-field-property-editor", never, { "aiEditField": { "alias": "aiEditField"; "required": true; "isSignal": true; }; "aiTable": { "alias": "aiTable"; "required": true; }; "aiExternalTemplate": { "alias": "aiExternalTemplate"; "required": false; }; "isUpdate": { "alias": "isUpdate"; "required": false; }; }, { "aiEditField": "aiEditFieldChange"; "addField": "addField"; "setField": "setField"; }, never, never, true, never>;
22
+ static ɵfac: i0.ɵɵFactoryDeclaration<AITableFieldSetting, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<AITableFieldSetting, "ai-table-field-setting", never, { "aiEditField": { "alias": "aiEditField"; "required": true; "isSignal": true; }; "aiTable": { "alias": "aiTable"; "required": true; }; "aiExternalTemplate": { "alias": "aiExternalTemplate"; "required": false; }; "isUpdate": { "alias": "isUpdate"; "required": false; }; }, { "aiEditField": "aiEditFieldChange"; "addField": "addField"; "setField": "setField"; }, never, never, true, never>;
24
24
  static ngAcceptInputType_isUpdate: unknown;
25
25
  }
26
- //# sourceMappingURL=field-property-editor.component.d.ts.map
26
+ //# sourceMappingURL=field-setting.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-setting.component.d.ts","sourceRoot":"","sources":["../../../../packages/grid/src/components/field-setting/field-setting.component.ts"],"names":[],"mappings":"AACA,OAAO,EAA6C,WAAW,EAAqD,MAAM,eAAe,CAAC;AAS1I,OAAO,EAAiB,sBAAsB,EAA2B,MAAM,iBAAiB,CAAC;AAIjG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,OAAO,EACH,OAAO,EACP,YAAY,EACZ,kBAAkB,EAIlB,eAAe,EAClB,MAAM,YAAY,CAAC;;AAGpB,qBAoCa,mBAAmB;IAC5B,WAAW,oDAAkC;IAElB,OAAO,EAAG,OAAO,CAAC;IAEpC,kBAAkB,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAQ;IAEpB,QAAQ,EAAG,OAAO,CAAC;IAE3D,QAAQ,yDAA0B;IAElC,QAAQ,qEAA6B;IAErC,mBAAmB,qDAEhB;IAEH,cAAc,SAAM;IAEpB,eAAe,EAAE,sBAAsB,CAOrC;IAEF,YAAY,uBAAgB;IAE5B,SAAS,CAAC,aAAa,+BAA8C;IAErE,eAAe,cAAe,MAAM,wCAGlC;IAEF,eAAe,CAAC,KAAK,EAAE,kBAAkB;IASzC,iBAAiB;IAYjB,MAAM;yCA1DG,mBAAmB;2CAAnB,mBAAmB;uCA8D0ulC,OAAQ;CADjxlC"}
@@ -1,4 +1,4 @@
1
- .ai-table-field-property-editor-panel {
1
+ .ai-table-field-setting-panel {
2
2
  height: auto;
3
3
  max-height: 80vh;
4
4
  .thy-popover-container {
@@ -7,6 +7,6 @@ export * from './cell-editors/rating/rating-editor.component';
7
7
  export * from './cell-editors/select/select-editor.component';
8
8
  export * from './cell-editors/text/text-editor.component';
9
9
  export * from './cell-views/select/option.component';
10
- export * from './field-property-editor/field-property-editor.component';
10
+ export * from './field-setting/field-setting.component';
11
11
  export * from './context-menu/context-menu.component';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yDAAyD,CAAC;AACxE,cAAc,uCAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,mDAAmD,CAAC;AAClE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,uCAAuC,CAAC"}
package/core/context.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  import { Signal, WritableSignal } from '@angular/core';
2
- import { AITableContext, AITableLinearRow, AITablePointPosition, AITableScrollState, ScrollActionOptions } from '../types';
2
+ import { AITableContext, AITableLinearRow, AITablePointPosition, AITableReferences, AITableScrollState, ScrollActionOptions } from '../types';
3
3
  export declare class RendererContext {
4
4
  linearRows: Signal<AITableLinearRow[]>;
5
5
  pointPosition: WritableSignal<AITablePointPosition>;
6
6
  scrollState: WritableSignal<AITableScrollState>;
7
- visibleColumnsMap: Signal<Map<string, number>>;
7
+ visibleColumnsIndexMap: Signal<Map<string, number>>;
8
8
  visibleRowsIndexMap: Signal<Map<string, number>>;
9
+ frozenColumnCount: Signal<number>;
10
+ references: Signal<AITableReferences>;
9
11
  scrollAction: (options: ScrollActionOptions) => void;
10
12
  constructor(options: AITableContext);
11
13
  setPointPosition(position: Partial<AITablePointPosition>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE3H,qBAAa,eAAe;IACxB,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,aAAa,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACpD,WAAW,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;gBAEzC,OAAO,EAAE,cAAc;IAUnC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAaxD,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAG1D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/core/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9I,qBAAa,eAAe;IACxB,UAAU,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,aAAa,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;IACpD,WAAW,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAChD,sBAAsB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACpD,mBAAmB,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACtC,YAAY,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;gBAEzC,OAAO,EAAE,cAAc;IAYnC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAaxD,cAAc,CAAC,WAAW,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAG1D"}
@@ -9,8 +9,8 @@ export declare class Coordinate {
9
9
  container: HTMLDivElement;
10
10
  containerWidth: number;
11
11
  containerHeight: number;
12
- rowIndicesMap: AITableSizeMap;
13
- columnIndicesMap: AITableSizeMap;
12
+ rowIndicesSizeMap: AITableSizeMap;
13
+ columnIndicesSizeMap: AITableSizeMap;
14
14
  rowInitSize: number;
15
15
  columnInitSize: number;
16
16
  lastRowIndex: number;
@@ -18,7 +18,7 @@ export declare class Coordinate {
18
18
  rowMetaDataMap: Record<number, AITableCellMetaData>;
19
19
  columnMetaDataMap: Record<number, AITableCellMetaData>;
20
20
  frozenColumnCount: number;
21
- constructor({ rowHeight, rowCount, columnCount, container, rowIndicesMap, columnIndicesMap, rowInitSize, columnInitSize, frozenColumnCount }: AITableCoordinate);
21
+ constructor({ rowHeight, rowCount, columnCount, container, rowIndicesSizeMap, columnIndicesSizeMap, rowInitSize, columnInitSize, frozenColumnCount }: AITableCoordinate);
22
22
  get rowHeight(): number;
23
23
  set rowHeight(height: number);
24
24
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"coordinate.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/core/coordinate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAExG;;GAEG;AACH,qBAAa,UAAU;IACnB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,EAAE,cAAc,CAAM;IAEnC,gBAAgB,EAAE,cAAc,CAAM;IAEtC,WAAW,EAAE,MAAM,CAAC;IAEpB,cAAc,EAAE,MAAM,CAAC;IAEvB,YAAY,SAAM;IAElB,eAAe,SAAM;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAM;IACzD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAM;IAC5D,iBAAiB,EAAE,MAAM,CAAC;gBAErB,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAkB,EAClB,gBAAqB,EACrB,WAAe,EACf,cAAkB,EAClB,iBAAqB,EACxB,EAAE,iBAAiB;IAcpB,IAAW,SAAS,IAIS,MAAM,CAFlC;IAED,IAAW,SAAS,CAAC,MAAM,EAAE,MAAM,EAElC;IAED;;OAEG;IACH,IAAW,UAAU,WAGpB;IAED;;OAEG;IACH,IAAW,WAAW,WAGrB;IAED;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM;IAIjC;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM;IAInC;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,mBAAmB;IAoC7F;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAgBrC;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB;IAgB1E;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAItC;;OAEG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAa5D;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIzC;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAahE;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM;IAIpC;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,MAAM;IAI1C;;OAEG;IACH,IAAI,iBAAiB,WAEpB;IAED;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;;;;;;CAU3D"}
1
+ {"version":3,"file":"coordinate.d.ts","sourceRoot":"","sources":["../../../packages/grid/src/core/coordinate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAExG;;GAEG;AACH,qBAAa,UAAU;IACnB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IAExB,iBAAiB,EAAE,cAAc,CAAM;IAEvC,oBAAoB,EAAE,cAAc,CAAM;IAE1C,WAAW,EAAE,MAAM,CAAC;IAEpB,cAAc,EAAE,MAAM,CAAC;IAEvB,YAAY,SAAM;IAElB,eAAe,SAAM;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAM;IACzD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAM;IAC5D,iBAAiB,EAAE,MAAM,CAAC;gBAErB,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,SAAS,EACT,iBAAsB,EACtB,oBAAyB,EACzB,WAAe,EACf,cAAkB,EAClB,iBAAqB,EACxB,EAAE,iBAAiB;IAcpB,IAAW,SAAS,IAIS,MAAM,CAFlC;IAED,IAAW,SAAS,CAAC,MAAM,EAAE,MAAM,EAElC;IAED;;OAEG;IACH,IAAW,UAAU,WAGpB;IAED;;OAEG;IACH,IAAW,WAAW,WAGrB;IAED;;OAEG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM;IAIjC;;OAEG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM;IAInC;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,GAAG,mBAAmB;IAoC7F;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;;OAGG;IACH,OAAO,CAAC,6BAA6B;IAgBrC;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB;IAgB1E;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAItC;;OAEG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAa5D;;OAEG;IACI,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAIzC;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAahE;;OAEG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM;IAIpC;;OAEG;IACI,eAAe,CAAC,WAAW,EAAE,MAAM;IAI1C;;OAEG;IACH,IAAI,iBAAiB,WAEpB;IAED;;OAEG;IACI,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;;;;;;CAU3D"}
@@ -1,5 +1,5 @@
1
1
  import { Signal, WritableSignal } from '@angular/core';
2
- import { AITableReferences, AITableSelection } from '../../types';
2
+ import { AITableSelection } from '../../types';
3
3
  import { RendererContext } from '../context';
4
4
  import { AIRecordFieldIdPath, AITableField, AITableFields, AITableRecord, AITableRecords } from './core';
5
5
  export interface AITable {
@@ -16,7 +16,6 @@ export interface AITable {
16
16
  }>;
17
17
  recordsWillHidden: WritableSignal<string[]>;
18
18
  recordsWillMove: WritableSignal<string[]>;
19
- references: WritableSignal<AITableReferences>;
20
19
  }
21
20
  export type AIPlugin = (aiTable: AITable) => AITable;
22
21
  export declare const AITable: {
@@ -47,5 +46,6 @@ export declare const AITable: {
47
46
  rowIndex: number;
48
47
  columnIndex: number;
49
48
  } | null;
49
+ isFrozenColumn(aiTable: AITable, columnIndex: number): boolean;
50
50
  };
51
51
  //# sourceMappingURL=ai-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-table.d.ts","sourceRoot":"","sources":["../../../../packages/grid/src/core/types/ai-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEzG,MAAM,WAAW,OAAO;IACpB,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC5C,oBAAoB,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAC,CAAC;IACrD,SAAS,EAAE,MAAM,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC,CAAC;IACnD,iBAAiB,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,UAAU,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;CACjD;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAErD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;8BAIU,OAAO;4BAGT,OAAO;2BAGR,OAAO,GAAG,mBAAmB,GAAG,IAAI;gCAG/B,OAAO,GAAG,MAAM,EAAE;2BAavB,OAAO,8BAA8B,OAAO;0BAO7C,OAAO,8BAA8B;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAY9G,CAAC"}
1
+ {"version":3,"file":"ai-table.d.ts","sourceRoot":"","sources":["../../../../packages/grid/src/core/types/ai-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAEzG,MAAM,WAAW,OAAO;IACpB,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC5C,oBAAoB,EAAE,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,UAAU,EAAE,MAAM,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAC,CAAC;IACrD,SAAS,EAAE,MAAM,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC,CAAC;IACnD,iBAAiB,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,eAAe,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;AAErD,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;8BAIU,OAAO;4BAGT,OAAO;2BAGR,OAAO,GAAG,mBAAmB,GAAG,IAAI;gCAG/B,OAAO,GAAG,MAAM,EAAE;2BAavB,OAAO,8BAA8B,OAAO;0BAO7C,OAAO,8BAA8B;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;4BAYnF,OAAO,eAAe,MAAM;CAOvD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../packages/grid/src/core/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,OAAO,EAAgB,aAAa,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/F,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAkCrH"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../packages/grid/src/core/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAoB,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,OAAO,EAAgB,aAAa,EAAiB,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/F,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,aAAa,CAAC,GAAG,OAAO,CAiCrH"}
@@ -0,0 +1,102 @@
1
+ import { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, Input, booleanAttribute, computed, inject, model, output } from '@angular/core';
3
+ import { FormsModule } from '@angular/forms';
4
+ import { ThyButton } from 'ngx-tethys/button';
5
+ import { ThyDropdownDirective, ThyDropdownMenuComponent, ThyDropdownMenuItemDirective, ThyDropdownMenuItemNameDirective } from 'ngx-tethys/dropdown';
6
+ import { ThyFormModule, ThyUniqueCheckValidator } from 'ngx-tethys/form';
7
+ import { ThyIcon } from 'ngx-tethys/icon';
8
+ import { ThyInputCount, ThyInputDirective, ThyInputGroup } from 'ngx-tethys/input';
9
+ import { ThyListItem } from 'ngx-tethys/list';
10
+ import { ThyPopoverRef } from 'ngx-tethys/popover';
11
+ import { ThyAutofocusDirective } from 'ngx-tethys/shared';
12
+ import { of } from 'rxjs';
13
+ import { FieldOptions, createDefaultFieldName, getFieldOptionByField } from '../../core';
14
+ import { AITableFieldIsMultiplePipe } from '../../pipes';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/forms";
17
+ import * as i2 from "ngx-tethys/form";
18
+ export class AITableFieldSetting {
19
+ constructor() {
20
+ this.aiEditField = model.required();
21
+ this.aiExternalTemplate = null;
22
+ this.addField = output();
23
+ this.setField = output();
24
+ this.selectedFieldOption = computed(() => {
25
+ return getFieldOptionByField(this.aiEditField());
26
+ });
27
+ this.fieldMaxLength = 32;
28
+ this.validatorConfig = {
29
+ validationMessages: {
30
+ fieldName: {
31
+ required: '列名不能为空',
32
+ thyUniqueCheck: '列名已存在'
33
+ }
34
+ }
35
+ };
36
+ this.fieldOptions = FieldOptions;
37
+ this.thyPopoverRef = inject((ThyPopoverRef));
38
+ this.checkUniqueName = (fieldName) => {
39
+ fieldName = fieldName?.trim();
40
+ return of(!!this.aiTable.fields()?.find((field) => field.name === fieldName && this.aiEditField()?._id !== field._id));
41
+ };
42
+ }
43
+ selectFieldType(field) {
44
+ this.aiEditField.update((item) => {
45
+ const width = item.width ?? field.width;
46
+ const settings = field.settings || {};
47
+ const name = createDefaultFieldName(this.aiTable, field);
48
+ return { ...item, ...field, width, name, ...settings };
49
+ });
50
+ }
51
+ editFieldProperty() {
52
+ if (this.isUpdate) {
53
+ this.setField.emit({
54
+ field: this.aiEditField(),
55
+ path: [this.aiEditField()._id]
56
+ });
57
+ }
58
+ else {
59
+ this.addField.emit(this.aiEditField());
60
+ }
61
+ this.thyPopoverRef.close();
62
+ }
63
+ cancel() {
64
+ this.thyPopoverRef.close();
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableFieldSetting, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AITableFieldSetting, isStandalone: true, selector: "ai-table-field-setting", inputs: { aiEditField: { classPropertyName: "aiEditField", publicName: "aiEditField", isSignal: true, isRequired: true, transformFunction: null }, aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: false, isRequired: true, transformFunction: null }, aiExternalTemplate: { classPropertyName: "aiExternalTemplate", publicName: "aiExternalTemplate", isSignal: false, isRequired: false, transformFunction: null }, isUpdate: { classPropertyName: "isUpdate", publicName: "isUpdate", isSignal: false, isRequired: false, transformFunction: booleanAttribute } }, outputs: { aiEditField: "aiEditFieldChange", addField: "addField", setField: "setField" }, host: { classAttribute: "field-setting d-block pl-5 pr-5 pb-5 pt-4" }, ngImport: i0, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"\u8868\u683C\u5217\u540D\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiEditField().name\"\n required\n placeholder=\"\u8F93\u5165\u5217\u540D\u79F0\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u5217\u7C7B\u578B\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"selectedFieldOption().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ selectedFieldOption().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: \u5185\u90E8\u5C5E\u6027\u6E32\u67D3 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">\u53D6\u6D88</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">\u786E\u5B9A</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of fieldOptions; track $index) {\n @let isSelectedField = aiEditField().type === item.type;\n @let isSameMultipleMode = (item.settings! | fieldIsMultiple) === (aiEditField().settings! | fieldIsMultiple);\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: isSelectedField && isSameMultipleMode\n }\"\n (click)=\"selectFieldType(item)\"\n >\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyInputGroup, selector: "thy-input-group", inputs: ["thyAppendText", "thyAppendTextTranslateKey", "thyPrependText", "thyPrependTextTranslateKey", "thySize"] }, { kind: "component", type: ThyInputCount, selector: "thy-input-count", inputs: ["thyInput"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyUniqueCheckValidator, selector: "[thyUniqueCheck]", inputs: ["thyUniqueCheck"] }, { kind: "directive", type: ThyDropdownDirective, selector: "[thyDropdown]", inputs: ["thyDropdownMenu", "thyDropdown", "thyTrigger", "thyShowDelay", "thyHideDelay", "thyActiveClass", "thyPopoverOptions", "thyPlacement", "thyMenuInsideClosable", "thyPanelClass"], outputs: ["thyActiveChange"] }, { kind: "component", type: ThyDropdownMenuComponent, selector: "thy-dropdown-menu", inputs: ["thyWidth", "thyImmediateRender"] }, { kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "ngmodule", type: ThyFormModule }, { kind: "directive", type: i2.ThyFormDirective, selector: "[thyForm],[thy-form]", inputs: ["thyLayout", "thyEnterKeyMode", "thyFormValidatorConfig"], exportAs: ["thyForm"] }, { kind: "component", type: i2.ThyFormGroup, selector: "thy-form-group", inputs: ["thyLabelText", "thyLabelTextTranslateKey", "thyLabelRequired", "thyLabelPaddingTopClear", "thyFeedbackIcon", "thyTipsMode", "thyTips", "thyTipsTranslateKey", "thyRowFill"] }, { kind: "directive", type: i2.ThyFormSubmitDirective, selector: "[thyFormSubmit],[thy-form-submit]", outputs: ["thyFormSubmit"] }, { kind: "component", type: i2.ThyFormGroupFooter, selector: "thy-form-group-footer", inputs: ["thyAlign"] }, { kind: "component", type: ThyListItem, selector: "thy-list-item,[thy-list-item]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "pipe", type: AITableFieldIsMultiplePipe, name: "fieldIsMultiple" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableFieldSetting, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'ai-table-field-setting', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
72
+ NgIf,
73
+ NgClass,
74
+ FormsModule,
75
+ ThyIcon,
76
+ ThyInputGroup,
77
+ ThyInputCount,
78
+ ThyInputDirective,
79
+ ThyUniqueCheckValidator,
80
+ ThyDropdownDirective,
81
+ ThyDropdownMenuComponent,
82
+ ThyDropdownMenuItemDirective,
83
+ ThyDropdownMenuItemNameDirective,
84
+ ThyButton,
85
+ ThyFormModule,
86
+ ThyListItem,
87
+ NgTemplateOutlet,
88
+ ThyAutofocusDirective,
89
+ AITableFieldIsMultiplePipe
90
+ ], host: {
91
+ class: 'field-setting d-block pl-5 pr-5 pb-5 pt-4'
92
+ }, template: "<form thyForm name=\"createPropertyForm\" [thyFormValidatorConfig]=\"validatorConfig\" thyLayout=\"vertical\">\n <thy-form-group thyLabelRequired thyLabelText=\"\u8868\u683C\u5217\u540D\">\n <thy-input-group>\n <input\n thyInput\n [thyAutofocus]=\"true\"\n name=\"fieldName\"\n [maxlength]=\"fieldMaxLength\"\n [(ngModel)]=\"aiEditField().name\"\n required\n placeholder=\"\u8F93\u5165\u5217\u540D\u79F0\"\n [thyUniqueCheck]=\"checkUniqueName\"\n />\n <ng-template #suffix>\n <thy-input-count></thy-input-count>\n </ng-template>\n </thy-input-group>\n </thy-form-group>\n <thy-form-group thyLabelText=\"\u5217\u7C7B\u578B\">\n <div class=\"ml-n5 mr-n5\">\n <thy-list-item [thyDropdown]=\"menu\" thyTrigger=\"hover\" thyPlacement=\"right\" class=\"justify-content-between\">\n <span>\n <thy-icon [thyIconName]=\"selectedFieldOption().icon\" class=\"text-desc mr-2\"></thy-icon>\n <span>{{ selectedFieldOption().name }}</span>\n </span>\n <thy-icon thyIconName=\"angle-right\" class=\"text-desc\"></thy-icon>\n </thy-list-item>\n </div>\n </thy-form-group>\n <ng-container *ngIf=\"aiExternalTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"aiExternalTemplate\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <!-- TODO: \u5185\u90E8\u5C5E\u6027\u6E32\u67D3 -->\n </ng-template>\n <thy-form-group-footer thyAlign=\"right\">\n <button thyButton=\"link-secondary\" (click)=\"cancel()\" thySize=\"sm\">\u53D6\u6D88</button>\n <button thyButton=\"primary\" (thyFormSubmit)=\"editFieldProperty()\" thySize=\"sm\">\u786E\u5B9A</button>\n </thy-form-group-footer>\n</form>\n\n<thy-dropdown-menu #menu>\n @for (item of fieldOptions; track $index) {\n @let isSelectedField = aiEditField().type === item.type;\n @let isSameMultipleMode = (item.settings! | fieldIsMultiple) === (aiEditField().settings! | fieldIsMultiple);\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n active: isSelectedField && isSameMultipleMode\n }\"\n (click)=\"selectFieldType(item)\"\n >\n <thy-icon [thyIconName]=\"item.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ item.name }}</span>\n </a>\n }\n</thy-dropdown-menu>\n", styles: [":host{width:350px}\n"] }]
93
+ }], propDecorators: { aiTable: [{
94
+ type: Input,
95
+ args: [{ required: true }]
96
+ }], aiExternalTemplate: [{
97
+ type: Input
98
+ }], isUpdate: [{
99
+ type: Input,
100
+ args: [{ transform: booleanAttribute }]
101
+ }] } });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtc2V0dGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2ZpZWxkLXNldHRpbmcvZmllbGQtc2V0dGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2ZpZWxkLXNldHRpbmcvZmllbGQtc2V0dGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFlLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlDLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsd0JBQXdCLEVBQ3hCLDRCQUE0QixFQUM1QixnQ0FBZ0MsRUFDbkMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUEwQix1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixF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bUZBMERBLDhFRHhCUSxJQUFJLDZGQUNKLE9BQU8sbUZBQ1AsV0FBVyx3NkNBQ1gsT0FBTyxzTUFDUCxhQUFhLCtLQUNiLGFBQWEsa0ZBQ2IsaUJBQWlCLCtJQUNqQix1QkFBdUIseUZBQ3ZCLG9CQUFvQixtUkFDcEIsd0JBQXdCLDBHQUN4Qiw0QkFBNEIsc0dBQzVCLGdDQUFnQyxzRUFDaEMsU0FBUyxtTEFDVCxhQUFhLCtyQkFDYixXQUFXLDBFQUNYLGdCQUFnQixvSkFDaEIscUJBQXFCLDZIQUNyQiwwQkFBMEI7OzRGQWFyQixtQkFBbUI7a0JBcEMvQixTQUFTOytCQUNJLHdCQUF3QixjQUV0QixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ0wsSUFBSTt3QkFDSixPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLG9CQUFvQjt3QkFDcEIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLGdDQUFnQzt3QkFDaEMsU0FBUzt3QkFDVCxhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLDBCQUEwQjtxQkFDN0IsUUFDSzt3QkFDRixLQUFLLEVBQUUsMkNBQTJDO3FCQUNyRDs4QkFZMEIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBRWhCLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFa0MsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFRlbXBsYXRlUmVmLCBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgaW5qZWN0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeUJ1dHRvbiB9IGZyb20gJ25neC10ZXRoeXMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgVGh5RHJvcGRvd25EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgIFRoeURyb3Bkb3duTWVudUl0ZW1EaXJlY3RpdmUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbU5hbWVEaXJlY3RpdmVcbn0gZnJvbSAnbmd4LXRldGh5cy9kcm9wZG93bic7XG5pbXBvcnQgeyBUaHlGb3JtTW9kdWxlLCBUaHlGb3JtVmFsaWRhdG9yQ29uZmlnLCBUaHlVbmlxdWVDaGVja1ZhbGlkYXRvciB9IGZyb20gJ25neC10ZXRoeXMvZm9ybSc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeUlucHV0Q291bnQsIFRoeUlucHV0RGlyZWN0aXZlLCBUaHlJbnB1dEdyb3VwIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlMaXN0SXRlbSB9IGZyb20gJ25neC10ZXRoeXMvbGlzdCc7XG5pbXBvcnQgeyBUaHlQb3BvdmVyUmVmIH0gZnJvbSAnbmd4LXRldGh5cy9wb3BvdmVyJztcbmltcG9ydCB7IFRoeUF1dG9mb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ25neC10ZXRoeXMvc2hhcmVkJztcbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIEFJVGFibGUsXG4gICAgQUlUYWJsZUZpZWxkLFxuICAgIEFJVGFibGVGaWVsZE9wdGlvbixcbiAgICBGaWVsZE9wdGlvbnMsXG4gICAgY3JlYXRlRGVmYXVsdEZpZWxkTmFtZSxcbiAgICBnZXRGaWVsZE9wdGlvbkJ5RmllbGQsXG4gICAgU2V0RmllbGRPcHRpb25zXG59IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkSXNNdWx0aXBsZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWktdGFibGUtZmllbGQtc2V0dGluZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLXNldHRpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgVGh5SW5wdXRHcm91cCxcbiAgICAgICAgVGh5SW5wdXRDb3VudCxcbiAgICAgICAgVGh5SW5wdXREaXJlY3RpdmUsXG4gICAgICAgIFRoeVVuaXF1ZUNoZWNrVmFsaWRhdG9yLFxuICAgICAgICBUaHlEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51Q29tcG9uZW50LFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtTmFtZURpcmVjdGl2ZSxcbiAgICAgICAgVGh5QnV0dG9uLFxuICAgICAgICBUaHlGb3JtTW9kdWxlLFxuICAgICAgICBUaHlMaXN0SXRlbSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVGh5QXV0b2ZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBBSVRhYmxlRmllbGRJc011bHRpcGxlUGlwZVxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ZpZWxkLXNldHRpbmcgZC1ibG9jayBwbC01IHByLTUgcGItNSBwdC00J1xuICAgIH0sXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIGBcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEFJVGFibGVGaWVsZFNldHRpbmcge1xuICAgIGFpRWRpdEZpZWxkID0gbW9kZWwucmVxdWlyZWQ8QUlUYWJsZUZpZWxkPigpO1xuXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgYWlUYWJsZSE6IEFJVGFibGU7XG5cbiAgICBASW5wdXQoKSBhaUV4dGVybmFsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBpc1VwZGF0ZSE6IGJvb2xlYW47XG5cbiAgICBhZGRGaWVsZCA9IG91dHB1dDxBSVRhYmxlRmllbGQ+KCk7XG5cbiAgICBzZXRGaWVsZCA9IG91dHB1dDxTZXRGaWVsZE9wdGlvbnM+KCk7XG5cbiAgICBzZWxlY3RlZEZpZWxkT3B0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gZ2V0RmllbGRPcHRpb25CeUZpZWxkKHRoaXMuYWlFZGl0RmllbGQoKSkhO1xuICAgIH0pO1xuXG4gICAgZmllbGRNYXhMZW5ndGggPSAzMjtcblxuICAgIHZhbGlkYXRvckNvbmZpZzogVGh5Rm9ybVZhbGlkYXRvckNvbmZpZyA9IHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB7XG4gICAgICAgICAgICBmaWVsZE5hbWU6IHtcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ+WIl+WQjeS4jeiDveS4uuepuicsXG4gICAgICAgICAgICAgICAgdGh5VW5pcXVlQ2hlY2s6ICfliJflkI3lt7LlrZjlnKgnXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZmllbGRPcHRpb25zID0gRmllbGRPcHRpb25zO1xuXG4gICAgcHJvdGVjdGVkIHRoeVBvcG92ZXJSZWYgPSBpbmplY3QoVGh5UG9wb3ZlclJlZjxBSVRhYmxlRmllbGRTZXR0aW5nPik7XG5cbiAgICBjaGVja1VuaXF1ZU5hbWUgPSAoZmllbGROYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgZmllbGROYW1lID0gZmllbGROYW1lPy50cmltKCk7XG4gICAgICAgIHJldHVybiBvZighIXRoaXMuYWlUYWJsZS5maWVsZHMoKT8uZmluZCgoZmllbGQpID0+IGZpZWxkLm5hbWUgPT09IGZpZWxkTmFtZSAmJiB0aGlzLmFpRWRpdEZpZWxkKCk/Ll9pZCAhPT0gZmllbGQuX2lkKSk7XG4gICAgfTtcblxuICAgIHNlbGVjdEZpZWxkVHlwZShmaWVsZDogQUlUYWJsZUZpZWxkT3B0aW9uKSB7XG4gICAgICAgIHRoaXMuYWlFZGl0RmllbGQudXBkYXRlKChpdGVtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB3aWR0aCA9IGl0ZW0ud2lkdGggPz8gZmllbGQud2lkdGg7XG4gICAgICAgICAgICBjb25zdCBzZXR0aW5ncyA9IGZpZWxkLnNldHRpbmdzIHx8IHt9O1xuICAgICAgICAgICAgY29uc3QgbmFtZSA9IGNyZWF0ZURlZmF1bHRGaWVsZE5hbWUodGhpcy5haVRhYmxlLCBmaWVsZCk7XG4gICAgICAgICAgICByZXR1cm4geyAuLi5pdGVtLCAuLi5maWVsZCwgd2lkdGgsIG5hbWUsIC4uLnNldHRpbmdzIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGVkaXRGaWVsZFByb3BlcnR5KCkge1xuICAgICAgICBpZiAodGhpcy5pc1VwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXRGaWVsZC5lbWl0KHtcbiAgICAgICAgICAgICAgICBmaWVsZDogdGhpcy5haUVkaXRGaWVsZCgpLFxuICAgICAgICAgICAgICAgIHBhdGg6IFt0aGlzLmFpRWRpdEZpZWxkKCkuX2lkXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFkZEZpZWxkLmVtaXQodGhpcy5haUVkaXRGaWVsZCgpKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRoeVBvcG92ZXJSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKSB7XG4gICAgICAgIHRoaXMudGh5UG9wb3ZlclJlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjxmb3JtIHRoeUZvcm0gbmFtZT1cImNyZWF0ZVByb3BlcnR5Rm9ybVwiIFt0aHlGb3JtVmFsaWRhdG9yQ29uZmlnXT1cInZhbGlkYXRvckNvbmZpZ1wiIHRoeUxheW91dD1cInZlcnRpY2FsXCI+XG4gICAgPHRoeS1mb3JtLWdyb3VwIHRoeUxhYmVsUmVxdWlyZWQgdGh5TGFiZWxUZXh0PVwi6KGo5qC85YiX5ZCNXCI+XG4gICAgICAgIDx0aHktaW5wdXQtZ3JvdXA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0aHlJbnB1dFxuICAgICAgICAgICAgICAgIFt0aHlBdXRvZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpZWxkTmFtZVwiXG4gICAgICAgICAgICAgICAgW21heGxlbmd0aF09XCJmaWVsZE1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJhaUVkaXRGaWVsZCgpLm5hbWVcIlxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLovpPlhaXliJflkI3np7BcIlxuICAgICAgICAgICAgICAgIFt0aHlVbmlxdWVDaGVja109XCJjaGVja1VuaXF1ZU5hbWVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3VmZml4PlxuICAgICAgICAgICAgICAgIDx0aHktaW5wdXQtY291bnQ+PC90aHktaW5wdXQtY291bnQ+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3RoeS1pbnB1dC1ncm91cD5cbiAgICA8L3RoeS1mb3JtLWdyb3VwPlxuICAgIDx0aHktZm9ybS1ncm91cCB0aHlMYWJlbFRleHQ9XCLliJfnsbvlnotcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLW41IG1yLW41XCI+XG4gICAgICAgICAgICA8dGh5LWxpc3QtaXRlbSBbdGh5RHJvcGRvd25dPVwibWVudVwiIHRoeVRyaWdnZXI9XCJob3ZlclwiIHRoeVBsYWNlbWVudD1cInJpZ2h0XCIgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICA8dGh5LWljb24gW3RoeUljb25OYW1lXT1cInNlbGVjdGVkRmllbGRPcHRpb24oKS5pY29uXCIgY2xhc3M9XCJ0ZXh0LWRlc2MgbXItMlwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHNlbGVjdGVkRmllbGRPcHRpb24oKS5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8dGh5LWljb24gdGh5SWNvbk5hbWU9XCJhbmdsZS1yaWdodFwiIGNsYXNzPVwidGV4dC1kZXNjXCI+PC90aHktaWNvbj5cbiAgICAgICAgICAgIDwvdGh5LWxpc3QtaXRlbT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC90aHktZm9ybS1ncm91cD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWlFeHRlcm5hbFRlbXBsYXRlOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWlFeHRlcm5hbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgICAgIDwhLS0gVE9ETzog5YaF6YOo5bGe5oCn5riy5p+TIC0tPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHRoeS1mb3JtLWdyb3VwLWZvb3RlciB0aHlBbGlnbj1cInJpZ2h0XCI+XG4gICAgICAgIDxidXR0b24gdGh5QnV0dG9uPVwibGluay1zZWNvbmRhcnlcIiAoY2xpY2spPVwiY2FuY2VsKClcIiB0aHlTaXplPVwic21cIj7lj5bmtog8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0aHlCdXR0b249XCJwcmltYXJ5XCIgKHRoeUZvcm1TdWJtaXQpPVwiZWRpdEZpZWxkUHJvcGVydHkoKVwiIHRoeVNpemU9XCJzbVwiPuehruWumjwvYnV0dG9uPlxuICAgIDwvdGh5LWZvcm0tZ3JvdXAtZm9vdGVyPlxuPC9mb3JtPlxuXG48dGh5LWRyb3Bkb3duLW1lbnUgI21lbnU+XG4gICAgQGZvciAoaXRlbSBvZiBmaWVsZE9wdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICBAbGV0IGlzU2VsZWN0ZWRGaWVsZCA9IGFpRWRpdEZpZWxkKCkudHlwZSA9PT0gaXRlbS50eXBlO1xuICAgICAgICBAbGV0IGlzU2FtZU11bHRpcGxlTW9kZSA9IChpdGVtLnNldHRpbmdzISB8IGZpZWxkSXNNdWx0aXBsZSkgPT09IChhaUVkaXRGaWVsZCgpLnNldHRpbmdzISB8IGZpZWxkSXNNdWx0aXBsZSk7XG4gICAgICAgIDxhXG4gICAgICAgICAgICB0aHlEcm9wZG93bk1lbnVJdGVtXG4gICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDo7XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICBhY3RpdmU6IGlzU2VsZWN0ZWRGaWVsZCAmJiBpc1NhbWVNdWx0aXBsZU1vZGVcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEZpZWxkVHlwZShpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiaXRlbS5pY29uIVwiPjwvdGh5LWljb24+XG4gICAgICAgICAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtTmFtZT57eyBpdGVtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgIDwvYT5cbiAgICB9XG48L3RoeS1kcm9wZG93bi1tZW51PlxuIl19
@@ -7,6 +7,6 @@ export * from './cell-editors/rating/rating-editor.component';
7
7
  export * from './cell-editors/select/select-editor.component';
8
8
  export * from './cell-editors/text/text-editor.component';
9
9
  export * from './cell-views/select/option.component';
10
- export * from './field-property-editor/field-property-editor.component';
10
+ export * from './field-setting/field-setting.component';
11
11
  export * from './context-menu/context-menu.component';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL2Fic3RyYWN0LWNlbGwtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9kYXRlL2RhdGUtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9saW5rL2xpbmstZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9udW1iZXIvbnVtYmVyLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9yYXRpbmcvcmF0aW5nLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvc2VsZWN0L3NlbGVjdC1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL3RleHQvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLXByb3BlcnR5LWVkaXRvci9maWVsZC1wcm9wZXJ0eS1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQnO1xuIl19
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL2Fic3RyYWN0LWNlbGwtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9kYXRlL2RhdGUtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9saW5rL2xpbmstZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9udW1iZXIvbnVtYmVyLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvcHJvZ3Jlc3MvcHJvZ3Jlc3MtZWRpdG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NlbGwtZWRpdG9ycy9yYXRpbmcvcmF0aW5nLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jZWxsLWVkaXRvcnMvc2VsZWN0L3NlbGVjdC1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC1lZGl0b3JzL3RleHQvdGV4dC1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ZpZWxkLXNldHRpbmcvZmllbGQtc2V0dGluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudCc7XG4iXX0=
@@ -1,12 +1,14 @@
1
1
  export class RendererContext {
2
2
  constructor(options) {
3
- const { linearRows, pointPosition, scrollState, visibleColumnsMap, visibleRowsIndexMap, scrollAction } = options;
3
+ const { linearRows, pointPosition, scrollState, visibleColumnsIndexMap, visibleRowsIndexMap, frozenColumnCount, references, scrollAction } = options;
4
4
  this.linearRows = linearRows;
5
5
  this.pointPosition = pointPosition;
6
6
  this.scrollState = scrollState;
7
7
  this.scrollAction = scrollAction;
8
- this.visibleColumnsMap = visibleColumnsMap;
8
+ this.visibleColumnsIndexMap = visibleColumnsIndexMap;
9
9
  this.visibleRowsIndexMap = visibleRowsIndexMap;
10
+ this.frozenColumnCount = frozenColumnCount;
11
+ this.references = references;
10
12
  }
11
13
  setPointPosition(position) {
12
14
  const oldPosition = this.pointPosition();
@@ -22,4 +24,4 @@ export class RendererContext {
22
24
  this.scrollState.set({ ...this.scrollState(), ...scrollState });
23
25
  }
24
26
  }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZUFBZTtJQVF4QixZQUFZLE9BQXVCO1FBQy9CLE1BQU0sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDakgsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FBQztJQUNuRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBdUM7UUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3pDLElBQ0ksV0FBVyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsUUFBUTtZQUMxQyxXQUFXLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxRQUFRO1lBQzFDLFdBQVcsQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLFdBQVc7WUFDaEQsV0FBVyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQUMsVUFBVSxFQUNoRCxDQUFDO1lBQ0MsTUFBTSxXQUFXLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQXdDO1FBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVDb250ZXh0LCBBSVRhYmxlTGluZWFyUm93LCBBSVRhYmxlUG9pbnRQb3NpdGlvbiwgQUlUYWJsZVNjcm9sbFN0YXRlLCBTY3JvbGxBY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgUmVuZGVyZXJDb250ZXh0IHtcbiAgICBsaW5lYXJSb3dzOiBTaWduYWw8QUlUYWJsZUxpbmVhclJvd1tdPjtcbiAgICBwb2ludFBvc2l0aW9uOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlUG9pbnRQb3NpdGlvbj47XG4gICAgc2Nyb2xsU3RhdGU6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVTY3JvbGxTdGF0ZT47XG4gICAgdmlzaWJsZUNvbHVtbnNNYXA6IFNpZ25hbDxNYXA8c3RyaW5nLCBudW1iZXI+PjtcbiAgICB2aXNpYmxlUm93c0luZGV4TWFwOiBTaWduYWw8TWFwPHN0cmluZywgbnVtYmVyPj47XG4gICAgc2Nyb2xsQWN0aW9uOiAob3B0aW9uczogU2Nyb2xsQWN0aW9uT3B0aW9ucykgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEFJVGFibGVDb250ZXh0KSB7XG4gICAgICAgIGNvbnN0IHsgbGluZWFyUm93cywgcG9pbnRQb3NpdGlvbiwgc2Nyb2xsU3RhdGUsIHZpc2libGVDb2x1bW5zTWFwLCB2aXNpYmxlUm93c0luZGV4TWFwLCBzY3JvbGxBY3Rpb24gfSA9IG9wdGlvbnM7XG4gICAgICAgIHRoaXMubGluZWFyUm93cyA9IGxpbmVhclJvd3M7XG4gICAgICAgIHRoaXMucG9pbnRQb3NpdGlvbiA9IHBvaW50UG9zaXRpb247XG4gICAgICAgIHRoaXMuc2Nyb2xsU3RhdGUgPSBzY3JvbGxTdGF0ZTtcbiAgICAgICAgdGhpcy5zY3JvbGxBY3Rpb24gPSBzY3JvbGxBY3Rpb247XG4gICAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnNNYXAgPSB2aXNpYmxlQ29sdW1uc01hcDtcbiAgICAgICAgdGhpcy52aXNpYmxlUm93c0luZGV4TWFwID0gdmlzaWJsZVJvd3NJbmRleE1hcDtcbiAgICB9XG5cbiAgICBzZXRQb2ludFBvc2l0aW9uKHBvc2l0aW9uOiBQYXJ0aWFsPEFJVGFibGVQb2ludFBvc2l0aW9uPikge1xuICAgICAgICBjb25zdCBvbGRQb3NpdGlvbiA9IHRoaXMucG9pbnRQb3NpdGlvbigpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBvbGRQb3NpdGlvbi5hcmVhVHlwZSAhPT0gcG9zaXRpb24uYXJlYVR5cGUgfHxcbiAgICAgICAgICAgIG9sZFBvc2l0aW9uLnJvd0luZGV4ICE9PSBwb3NpdGlvbi5yb3dJbmRleCB8fFxuICAgICAgICAgICAgb2xkUG9zaXRpb24uY29sdW1uSW5kZXggIT09IHBvc2l0aW9uLmNvbHVtbkluZGV4IHx8XG4gICAgICAgICAgICBvbGRQb3NpdGlvbi50YXJnZXROYW1lICE9PSBwb3NpdGlvbi50YXJnZXROYW1lXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgbmV3UG9zaXRpb24gPSB7IC4uLm9sZFBvc2l0aW9uLCAuLi5wb3NpdGlvbiB9O1xuICAgICAgICAgICAgdGhpcy5wb2ludFBvc2l0aW9uLnNldChuZXdQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTY3JvbGxTdGF0ZShzY3JvbGxTdGF0ZTogUGFydGlhbDxBSVRhYmxlU2Nyb2xsU3RhdGU+KSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsU3RhdGUuc2V0KHsgLi4udGhpcy5zY3JvbGxTdGF0ZSgpLCAuLi5zY3JvbGxTdGF0ZSB9KTtcbiAgICB9XG59XG4iXX0=
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvY29udGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sZUFBZTtJQVV4QixZQUFZLE9BQXVCO1FBQy9CLE1BQU0sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ3JKLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7UUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUF1QztRQUNwRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekMsSUFDSSxXQUFXLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxRQUFRO1lBQzFDLFdBQVcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLFFBQVE7WUFDMUMsV0FBVyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsV0FBVztZQUNoRCxXQUFXLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxVQUFVLEVBQ2hELENBQUM7WUFDQyxNQUFNLFdBQVcsR0FBRyxFQUFFLEdBQUcsV0FBVyxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBd0M7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUNvbnRleHQsIEFJVGFibGVMaW5lYXJSb3csIEFJVGFibGVQb2ludFBvc2l0aW9uLCBBSVRhYmxlUmVmZXJlbmNlcywgQUlUYWJsZVNjcm9sbFN0YXRlLCBTY3JvbGxBY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgUmVuZGVyZXJDb250ZXh0IHtcbiAgICBsaW5lYXJSb3dzOiBTaWduYWw8QUlUYWJsZUxpbmVhclJvd1tdPjtcbiAgICBwb2ludFBvc2l0aW9uOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlUG9pbnRQb3NpdGlvbj47XG4gICAgc2Nyb2xsU3RhdGU6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVTY3JvbGxTdGF0ZT47XG4gICAgdmlzaWJsZUNvbHVtbnNJbmRleE1hcDogU2lnbmFsPE1hcDxzdHJpbmcsIG51bWJlcj4+O1xuICAgIHZpc2libGVSb3dzSW5kZXhNYXA6IFNpZ25hbDxNYXA8c3RyaW5nLCBudW1iZXI+PjtcbiAgICBmcm96ZW5Db2x1bW5Db3VudDogU2lnbmFsPG51bWJlcj47XG4gICAgcmVmZXJlbmNlczogU2lnbmFsPEFJVGFibGVSZWZlcmVuY2VzPjtcbiAgICBzY3JvbGxBY3Rpb246IChvcHRpb25zOiBTY3JvbGxBY3Rpb25PcHRpb25zKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogQUlUYWJsZUNvbnRleHQpIHtcbiAgICAgICAgY29uc3QgeyBsaW5lYXJSb3dzLCBwb2ludFBvc2l0aW9uLCBzY3JvbGxTdGF0ZSwgdmlzaWJsZUNvbHVtbnNJbmRleE1hcCwgdmlzaWJsZVJvd3NJbmRleE1hcCwgZnJvemVuQ29sdW1uQ291bnQsIHJlZmVyZW5jZXMsIHNjcm9sbEFjdGlvbiB9ID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5saW5lYXJSb3dzID0gbGluZWFyUm93cztcbiAgICAgICAgdGhpcy5wb2ludFBvc2l0aW9uID0gcG9pbnRQb3NpdGlvbjtcbiAgICAgICAgdGhpcy5zY3JvbGxTdGF0ZSA9IHNjcm9sbFN0YXRlO1xuICAgICAgICB0aGlzLnNjcm9sbEFjdGlvbiA9IHNjcm9sbEFjdGlvbjtcbiAgICAgICAgdGhpcy52aXNpYmxlQ29sdW1uc0luZGV4TWFwID0gdmlzaWJsZUNvbHVtbnNJbmRleE1hcDtcbiAgICAgICAgdGhpcy52aXNpYmxlUm93c0luZGV4TWFwID0gdmlzaWJsZVJvd3NJbmRleE1hcDtcbiAgICAgICAgdGhpcy5mcm96ZW5Db2x1bW5Db3VudCA9IGZyb3plbkNvbHVtbkNvdW50O1xuICAgICAgICB0aGlzLnJlZmVyZW5jZXMgPSByZWZlcmVuY2VzO1xuICAgIH1cblxuICAgIHNldFBvaW50UG9zaXRpb24ocG9zaXRpb246IFBhcnRpYWw8QUlUYWJsZVBvaW50UG9zaXRpb24+KSB7XG4gICAgICAgIGNvbnN0IG9sZFBvc2l0aW9uID0gdGhpcy5wb2ludFBvc2l0aW9uKCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG9sZFBvc2l0aW9uLmFyZWFUeXBlICE9PSBwb3NpdGlvbi5hcmVhVHlwZSB8fFxuICAgICAgICAgICAgb2xkUG9zaXRpb24ucm93SW5kZXggIT09IHBvc2l0aW9uLnJvd0luZGV4IHx8XG4gICAgICAgICAgICBvbGRQb3NpdGlvbi5jb2x1bW5JbmRleCAhPT0gcG9zaXRpb24uY29sdW1uSW5kZXggfHxcbiAgICAgICAgICAgIG9sZFBvc2l0aW9uLnRhcmdldE5hbWUgIT09IHBvc2l0aW9uLnRhcmdldE5hbWVcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdQb3NpdGlvbiA9IHsgLi4ub2xkUG9zaXRpb24sIC4uLnBvc2l0aW9uIH07XG4gICAgICAgICAgICB0aGlzLnBvaW50UG9zaXRpb24uc2V0KG5ld1Bvc2l0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFNjcm9sbFN0YXRlKHNjcm9sbFN0YXRlOiBQYXJ0aWFsPEFJVGFibGVTY3JvbGxTdGF0ZT4pIHtcbiAgICAgICAgdGhpcy5zY3JvbGxTdGF0ZS5zZXQoeyAuLi50aGlzLnNjcm9sbFN0YXRlKCksIC4uLnNjcm9sbFN0YXRlIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -3,11 +3,11 @@ import { AITableRowColumnType } from '../types';
3
3
  * 用于构建 Canvas 基础坐标系,后续的绘制工作以此为基础
4
4
  */
5
5
  export class Coordinate {
6
- constructor({ rowHeight, rowCount, columnCount, container, rowIndicesMap = {}, columnIndicesMap = {}, rowInitSize = 0, columnInitSize = 0, frozenColumnCount = 0 }) {
6
+ constructor({ rowHeight, rowCount, columnCount, container, rowIndicesSizeMap = {}, columnIndicesSizeMap = {}, rowInitSize = 0, columnInitSize = 0, frozenColumnCount = 0 }) {
7
7
  // 用 index 映射 每一行的 高度
8
- this.rowIndicesMap = {};
8
+ this.rowIndicesSizeMap = {};
9
9
  // 用 index 映射 每一列 的 宽度
10
- this.columnIndicesMap = {};
10
+ this.columnIndicesSizeMap = {};
11
11
  // 行坐标集中最后一行的索引
12
12
  this.lastRowIndex = -1;
13
13
  // 列坐标集中最后一列的索引
@@ -20,8 +20,8 @@ export class Coordinate {
20
20
  this.rowInitSize = rowInitSize;
21
21
  this.columnInitSize = columnInitSize;
22
22
  this.containerWidth = container.offsetWidth;
23
- this.rowIndicesMap = rowIndicesMap;
24
- this.columnIndicesMap = columnIndicesMap;
23
+ this.rowIndicesSizeMap = rowIndicesSizeMap;
24
+ this.columnIndicesSizeMap = columnIndicesSizeMap;
25
25
  this.containerHeight = container.offsetHeight;
26
26
  this.frozenColumnCount = frozenColumnCount;
27
27
  this.container = container;
@@ -50,13 +50,13 @@ export class Coordinate {
50
50
  * 根据 rowIndex 获取对应行高
51
51
  */
52
52
  getRowHeight(index) {
53
- return this.rowIndicesMap[index] ?? this.rowHeight;
53
+ return this.rowIndicesSizeMap[index] ?? this.rowHeight;
54
54
  }
55
55
  /**
56
56
  * 根据 columnIndex 获取对应列宽
57
57
  */
58
58
  getColumnWidth(index) {
59
- return this.columnIndicesMap[index];
59
+ return this.columnIndicesSizeMap[index];
60
60
  }
61
61
  /**
62
62
  * 获取每个 cell 垂直/水平方向的坐标信息
@@ -80,7 +80,7 @@ export class Coordinate {
80
80
  offset = itemMetadata.offset + itemMetadata.size;
81
81
  }
82
82
  for (let i = lastMeasuredIndex + 1; i <= index; i++) {
83
- const size = isColumnType ? this.columnIndicesMap[i] : (this.rowIndicesMap[i] ?? this.rowHeight);
83
+ const size = isColumnType ? this.columnIndicesSizeMap[i] : (this.rowIndicesSizeMap[i] ?? this.rowHeight);
84
84
  cellMetadataMap[i] = {
85
85
  offset,
86
86
  size
@@ -219,4 +219,4 @@ export class Coordinate {
219
219
  };
220
220
  }
221
221
  }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvY29vcmRpbmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLG9CQUFvQixFQUFrQixNQUFNLFVBQVUsQ0FBQztBQUV4Rzs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBdUJuQixZQUFZLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGFBQWEsR0FBRyxFQUFFLEVBQ2xCLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsV0FBVyxHQUFHLENBQUMsRUFDZixjQUFjLEdBQUcsQ0FBQyxFQUNsQixpQkFBaUIsR0FBRyxDQUFDLEVBQ0w7UUExQnBCLHFCQUFxQjtRQUNkLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUMxQyxzQkFBc0I7UUFDZixxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBSzdDLGVBQWU7UUFDUixpQkFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGVBQWU7UUFDUixvQkFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxzQkFBaUIsR0FBd0MsRUFBRSxDQUFDO1FBYy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO1FBQzlDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsTUFBYztRQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFVBQVU7UUFDakIsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pHLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFdBQVc7UUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNGLE9BQU8sTUFBTSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsS0FBYTtRQUM3QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsS0FBYTtRQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxlQUFlLENBQUMsS0FBYSxFQUFFLFFBQThCO1FBQ25FLElBQUksZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUMvQyxNQUFNLFlBQVksR0FBRyxRQUFRLEtBQUssb0JBQW9CLENBQUMsTUFBTSxDQUFDO1FBQzlELElBQUksWUFBWSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUM3QixpQkFBaUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3pDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMxQixpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3RDLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLEtBQUssR0FBRyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVCLElBQUksaUJBQWlCLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JELENBQUM7WUFFRCxLQUFLLElBQUksQ0FBQyxHQUFHLGlCQUFpQixHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2xELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUVqRyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUc7b0JBQ2pCLE1BQU07b0JBQ04sSUFBSTtpQkFDUCxDQUFDO2dCQUNGLE1BQU0sSUFBSSxJQUFJLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDakMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0sscUJBQXFCLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxRQUE4QjtRQUN2RixNQUFNLFNBQVMsR0FBRyxRQUFRLEtBQUssb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlGLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztRQUVqQixPQUFPLEtBQUssR0FBRyxTQUFTLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQ2hGLEtBQUssSUFBSSxRQUFRLENBQUM7WUFDbEIsUUFBUSxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2SCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssNkJBQTZCLENBQUMsTUFBYyxFQUFFLEdBQVcsRUFBRSxJQUFZLEVBQUUsUUFBOEI7UUFDM0csT0FBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDakIsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDbEQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBRXBFLElBQUksYUFBYSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUMzQixPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDO2lCQUFNLElBQUksYUFBYSxHQUFHLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNyQixDQUFDO2lCQUFNLElBQUksYUFBYSxHQUFHLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxJQUFJLEdBQUcsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0JBQW9CLENBQUMsTUFBYyxFQUFFLFFBQThCO1FBQ3RFLElBQUksU0FBUyxDQUFDO1FBQ2QsSUFBSSxRQUFRLEtBQUssb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0MsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDSixTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUNsQyxDQUFDO1FBQ0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3BFLE1BQU0sc0JBQXNCLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUQsSUFBSSxzQkFBc0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRDs7T0FFRztJQUNJLGdCQUFnQixDQUFDLE1BQWM7UUFDbEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWUsQ0FBQyxVQUFrQixFQUFFLFNBQWlCO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hGLE1BQU0sU0FBUyxHQUFHLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ25ELElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztRQUNyRCxJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUM7UUFFM0IsT0FBTyxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksTUFBTSxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ3pELFNBQVMsRUFBRSxDQUFDO1lBQ1osTUFBTSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksbUJBQW1CLENBQUMsTUFBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksa0JBQWtCLENBQUMsVUFBa0IsRUFBRSxVQUFrQjtRQUM1RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRixNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUNuRCxJQUFJLE1BQU0sR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDckQsSUFBSSxTQUFTLEdBQUcsVUFBVSxDQUFDO1FBRTNCLE9BQU8sU0FBUyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLE1BQU0sR0FBRyxTQUFTLEVBQUUsQ0FBQztZQUM1RCxTQUFTLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEYsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxRQUFnQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxlQUFlLENBQUMsV0FBbUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDakYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLFFBQWdCLEVBQUUsV0FBbUI7UUFDcEQsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRyxPQUFPO1lBQ0gsQ0FBQztZQUNELENBQUM7WUFDRCxLQUFLO1lBQ0wsTUFBTTtTQUNULENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlQ2VsbE1ldGFEYXRhLCBBSVRhYmxlQ29vcmRpbmF0ZSwgQUlUYWJsZVJvd0NvbHVtblR5cGUsIEFJVGFibGVTaXplTWFwIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIOeUqOS6juaehOW7uiBDYW52YXMg5Z+656GA5Z2Q5qCH57O777yM5ZCO57ut55qE57uY5Yi25bel5L2c5Lul5q2k5Li65Z+656GAXG4gKi9cbmV4cG9ydCBjbGFzcyBDb29yZGluYXRlIHtcbiAgICBwcm90ZWN0ZWQgX3Jvd0hlaWdodDogbnVtYmVyO1xuICAgIHB1YmxpYyByb3dDb3VudDogbnVtYmVyO1xuICAgIHB1YmxpYyBjb2x1bW5Db3VudDogbnVtYmVyO1xuICAgIHB1YmxpYyBjb250YWluZXI6IEhUTUxEaXZFbGVtZW50O1xuICAgIHB1YmxpYyBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuICAgIHB1YmxpYyBjb250YWluZXJIZWlnaHQ6IG51bWJlcjtcbiAgICAvLyDnlKggaW5kZXgg5pig5bCEIOavj+S4gOihjOeahCDpq5jluqZcbiAgICBwdWJsaWMgcm93SW5kaWNlc01hcDogQUlUYWJsZVNpemVNYXAgPSB7fTtcbiAgICAvLyDnlKggaW5kZXgg5pig5bCEIOavj+S4gOWIlyDnmoQg5a695bqmXG4gICAgcHVibGljIGNvbHVtbkluZGljZXNNYXA6IEFJVGFibGVTaXplTWFwID0ge307XG4gICAgLy8g6Zmk5Y676KGo5aS05ZKM57yW5Y+35YiX55yf5q2j5Y2V5YWD5qC857uY5Yi255qE5Yid5aeL5YC8IHhcbiAgICBwdWJsaWMgcm93SW5pdFNpemU6IG51bWJlcjtcbiAgICAvLyDpmaTljrvooajlpLTlkoznvJblj7fliJfnnJ/mraPljZXlhYPmoLznu5jliLbnmoTliJ3lp4vlgLwgeVxuICAgIHB1YmxpYyBjb2x1bW5Jbml0U2l6ZTogbnVtYmVyO1xuICAgIC8vIOihjOWdkOagh+mbhuS4reacgOWQjuS4gOihjOeahOe0ouW8lVxuICAgIHB1YmxpYyBsYXN0Um93SW5kZXggPSAtMTtcbiAgICAvLyDliJflnZDmoIfpm4bkuK3mnIDlkI7kuIDliJfnmoTntKLlvJVcbiAgICBwdWJsaWMgbGFzdENvbHVtbkluZGV4ID0gLTE7XG4gICAgcHVibGljIHJvd01ldGFEYXRhTWFwOiBSZWNvcmQ8bnVtYmVyLCBBSVRhYmxlQ2VsbE1ldGFEYXRhPiA9IHt9O1xuICAgIHB1YmxpYyBjb2x1bW5NZXRhRGF0YU1hcDogUmVjb3JkPG51bWJlciwgQUlUYWJsZUNlbGxNZXRhRGF0YT4gPSB7fTtcbiAgICBwdWJsaWMgZnJvemVuQ29sdW1uQ291bnQ6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHtcbiAgICAgICAgcm93SGVpZ2h0LFxuICAgICAgICByb3dDb3VudCxcbiAgICAgICAgY29sdW1uQ291bnQsXG4gICAgICAgIGNvbnRhaW5lcixcbiAgICAgICAgcm93SW5kaWNlc01hcCA9IHt9LFxuICAgICAgICBjb2x1bW5JbmRpY2VzTWFwID0ge30sXG4gICAgICAgIHJvd0luaXRTaXplID0gMCxcbiAgICAgICAgY29sdW1uSW5pdFNpemUgPSAwLFxuICAgICAgICBmcm96ZW5Db2x1bW5Db3VudCA9IDBcbiAgICB9OiBBSVRhYmxlQ29vcmRpbmF0ZSkge1xuICAgICAgICB0aGlzLl9yb3dIZWlnaHQgPSByb3dIZWlnaHQ7XG4gICAgICAgIHRoaXMucm93Q291bnQgPSByb3dDb3VudDtcbiAgICAgICAgdGhpcy5jb2x1bW5Db3VudCA9IGNvbHVtbkNvdW50O1xuICAgICAgICB0aGlzLnJvd0luaXRTaXplID0gcm93SW5pdFNpemU7XG4gICAgICAgIHRoaXMuY29sdW1uSW5pdFNpemUgPSBjb2x1bW5Jbml0U2l6ZTtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWR0aCA9IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5yb3dJbmRpY2VzTWFwID0gcm93SW5kaWNlc01hcDtcbiAgICAgICAgdGhpcy5jb2x1bW5JbmRpY2VzTWFwID0gY29sdW1uSW5kaWNlc01hcDtcbiAgICAgICAgdGhpcy5jb250YWluZXJIZWlnaHQgPSBjb250YWluZXIub2Zmc2V0SGVpZ2h0O1xuICAgICAgICB0aGlzLmZyb3plbkNvbHVtbkNvdW50ID0gZnJvemVuQ29sdW1uQ291bnQ7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gY29udGFpbmVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm93SGVpZ2h0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93SGVpZ2h0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcm93SGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3Jvd0hlaWdodCA9IGhlaWdodDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmgLvlrr3luqZcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdGFsV2lkdGgoKSB7XG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0LCBzaXplIH0gPSB0aGlzLmdldENlbGxNZXRhRGF0YSh0aGlzLmNvbHVtbkNvdW50IC0gMSwgQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKTtcbiAgICAgICAgcmV0dXJuIG9mZnNldCArIHNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oC76auY5bqmXG4gICAgICovXG4gICAgcHVibGljIGdldCB0b3RhbEhlaWdodCgpIHtcbiAgICAgICAgY29uc3QgeyBvZmZzZXQsIHNpemUgfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHRoaXMucm93Q291bnQgLSAxLCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgICAgICByZXR1cm4gb2Zmc2V0ICsgc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gcm93SW5kZXgg6I635Y+W5a+55bqU6KGM6auYXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd0hlaWdodChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd0luZGljZXNNYXBbaW5kZXhdID8/IHRoaXMucm93SGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriBjb2x1bW5JbmRleCDojrflj5blr7nlupTliJflrr1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uV2lkdGgoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5JbmRpY2VzTWFwW2luZGV4XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDojrflj5bmr4/kuKogY2VsbCDlnoLnm7Qv5rC05bmz5pa55ZCR55qE5Z2Q5qCH5L+h5oGvXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldENlbGxNZXRhRGF0YShpbmRleDogbnVtYmVyLCBpdGVtVHlwZTogQUlUYWJsZVJvd0NvbHVtblR5cGUpOiBBSVRhYmxlQ2VsbE1ldGFEYXRhIHtcbiAgICAgICAgbGV0IGNlbGxNZXRhZGF0YU1hcCwgbGFzdE1lYXN1cmVkSW5kZXgsIG9mZnNldDtcbiAgICAgICAgY29uc3QgaXNDb2x1bW5UeXBlID0gaXRlbVR5cGUgPT09IEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbjtcbiAgICAgICAgaWYgKGlzQ29sdW1uVHlwZSkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5jb2x1bW5Jbml0U2l6ZTtcbiAgICAgICAgICAgIGxhc3RNZWFzdXJlZEluZGV4ID0gdGhpcy5sYXN0Q29sdW1uSW5kZXg7XG4gICAgICAgICAgICBjZWxsTWV0YWRhdGFNYXAgPSB0aGlzLmNvbHVtbk1ldGFEYXRhTWFwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5yb3dJbml0U2l6ZTtcbiAgICAgICAgICAgIGxhc3RNZWFzdXJlZEluZGV4ID0gdGhpcy5sYXN0Um93SW5kZXg7XG4gICAgICAgICAgICBjZWxsTWV0YWRhdGFNYXAgPSB0aGlzLnJvd01ldGFEYXRhTWFwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA+IGxhc3RNZWFzdXJlZEluZGV4KSB7XG4gICAgICAgICAgICBpZiAobGFzdE1lYXN1cmVkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1NZXRhZGF0YSA9IGNlbGxNZXRhZGF0YU1hcFtsYXN0TWVhc3VyZWRJbmRleF07XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlbU1ldGFkYXRhLm9mZnNldCArIGl0ZW1NZXRhZGF0YS5zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gbGFzdE1lYXN1cmVkSW5kZXggKyAxOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gaXNDb2x1bW5UeXBlID8gdGhpcy5jb2x1bW5JbmRpY2VzTWFwW2ldIDogKHRoaXMucm93SW5kaWNlc01hcFtpXSA/PyB0aGlzLnJvd0hlaWdodCk7XG5cbiAgICAgICAgICAgICAgICBjZWxsTWV0YWRhdGFNYXBbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNDb2x1bW5UeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0Q29sdW1uSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0Um93SW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2VsbE1ldGFkYXRhTWFwW2luZGV4XSB8fCB7IHNpemU6IDAsIG9mZnNldDogMCB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOafpeaJvuacgOi/keeahOWNleWFg+agvOe0ouW8lVxuICAgICAqIOaAp+iDvei+g+W3ru+8jOS9huaXoOiuuuWmguS9lemDveWPr+S7peaJvuWIsFxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZpbmROZWFyZXN0Q2VsbEluZGV4KGluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBpdGVtVHlwZTogQUlUYWJsZVJvd0NvbHVtblR5cGUpIHtcbiAgICAgICAgY29uc3QgaXRlbUNvdW50ID0gaXRlbVR5cGUgPT09IEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbiA/IHRoaXMuY29sdW1uQ291bnQgOiB0aGlzLnJvd0NvdW50O1xuICAgICAgICBsZXQgaW50ZXJ2YWwgPSAxO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGl0ZW1Db3VudCAmJiB0aGlzLmdldENlbGxNZXRhRGF0YShpbmRleCwgaXRlbVR5cGUpLm9mZnNldCA8IG9mZnNldCkge1xuICAgICAgICAgICAgaW5kZXggKz0gaW50ZXJ2YWw7XG4gICAgICAgICAgICBpbnRlcnZhbCAqPSAyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmROZWFyZXN0Q2VsbEluZGV4QnlCaW5hcnkob2Zmc2V0LCBNYXRoLmZsb29yKGluZGV4IC8gMiksIE1hdGgubWluKGluZGV4LCBpdGVtQ291bnQgLSAxKSwgaXRlbVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS6jOWIhuazleafpeaJvuacgOi/keeahOWNleWFg+agvOe0ouW8lVxuICAgICAqIOaAp+iDveabtOS9s++8jOS9humcgOimgeWKoOi9veaVsOaNrlxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZpbmROZWFyZXN0Q2VsbEluZGV4QnlCaW5hcnkob2Zmc2V0OiBudW1iZXIsIGxvdzogbnVtYmVyLCBoaWdoOiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSkge1xuICAgICAgICB3aGlsZSAobG93IDw9IGhpZ2gpIHtcbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZSA9IGxvdyArIE1hdGguZmxvb3IoKGhpZ2ggLSBsb3cpIC8gMik7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50T2Zmc2V0ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEobWlkZGxlLCBpdGVtVHlwZSkub2Zmc2V0O1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCA9PT0gb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pZGRsZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE9mZnNldCA8IG9mZnNldCkge1xuICAgICAgICAgICAgICAgIGxvdyA9IG1pZGRsZSArIDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRPZmZzZXQgPiBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICBoaWdoID0gbWlkZGxlIC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG93ID4gLTEgPyBsb3cgLSAxIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7lgY/np7vph4/mn6Xmib7mnIDov5HnmoTljZXlhYPmoLzntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZmluZE5lYXJlc3RDZWxsSW5kZXgob2Zmc2V0OiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSkge1xuICAgICAgICBsZXQgbGFzdEluZGV4O1xuICAgICAgICBpZiAoaXRlbVR5cGUgPT09IEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbikge1xuICAgICAgICAgICAgbGFzdEluZGV4ID0gdGhpcy5sYXN0Q29sdW1uSW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYXN0SW5kZXggPSB0aGlzLmxhc3RSb3dJbmRleDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZWxsT2Zmc2V0ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEobGFzdEluZGV4LCBpdGVtVHlwZSkub2Zmc2V0O1xuICAgICAgICBjb25zdCBsYXN0TWVhc3VyZWRJdGVtT2Zmc2V0ID0gbGFzdEluZGV4ID4gMCA/IGNlbGxPZmZzZXQgOiAwO1xuXG4gICAgICAgIGlmIChsYXN0TWVhc3VyZWRJdGVtT2Zmc2V0ID49IG9mZnNldCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmROZWFyZXN0Q2VsbEluZGV4QnlCaW5hcnkob2Zmc2V0LCAwLCBsYXN0SW5kZXgsIGl0ZW1UeXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZE5lYXJlc3RDZWxsSW5kZXgoTWF0aC5tYXgoMCwgbGFzdEluZGV4KSwgb2Zmc2V0LCBpdGVtVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2u5Z6C55u05YGP56e76YeP5om+5Yiw6LW35aeL5Y2V5YWD5qC855qE57Si5byVXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd1N0YXJ0SW5kZXgob2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZE5lYXJlc3RDZWxsSW5kZXgob2Zmc2V0LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNruWeguebtOi1t+Wni+WNleWFg+agvOeahOe0ouW8leafpeaJvue7k+adn+WNleWFg+agvOeahOe0ouW8lVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb3dTdG9wSW5kZXgoc3RhcnRJbmRleDogbnVtYmVyLCBzY3JvbGxUb3A6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpdGVtTWV0YWRhdGEgPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdGFydEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgICAgICBjb25zdCBtYXhPZmZzZXQgPSBzY3JvbGxUb3AgKyB0aGlzLmNvbnRhaW5lckhlaWdodDtcbiAgICAgICAgbGV0IG9mZnNldCA9IGl0ZW1NZXRhZGF0YS5vZmZzZXQgKyBpdGVtTWV0YWRhdGEuc2l6ZTtcbiAgICAgICAgbGV0IHN0b3BJbmRleCA9IHN0YXJ0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKHN0b3BJbmRleCA8IHRoaXMucm93Q291bnQgLSAxICYmIG9mZnNldCA8IG1heE9mZnNldCkge1xuICAgICAgICAgICAgc3RvcEluZGV4Kys7XG4gICAgICAgICAgICBvZmZzZXQgKz0gdGhpcy5nZXRDZWxsTWV0YURhdGEoc3RvcEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpLnNpemU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0b3BJbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7msLTlubPlgY/np7vph4/mib7liLDotbflp4vljZXlhYPmoLznmoTntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uU3RhcnRJbmRleChvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kTmVhcmVzdENlbGxJbmRleChvZmZzZXQsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2u5rC05bmz6LW35aeL5Y2V5YWD5qC855qE57Si5byV5p+l5om+57uT5p2f5Y2V5YWD5qC855qE57Si5byVXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtblN0b3BJbmRleChzdGFydEluZGV4OiBudW1iZXIsIHNjcm9sbExlZnQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpdGVtTWV0YWRhdGEgPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdGFydEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pO1xuICAgICAgICBjb25zdCBtYXhPZmZzZXQgPSBzY3JvbGxMZWZ0ICsgdGhpcy5jb250YWluZXJXaWR0aDtcbiAgICAgICAgbGV0IG9mZnNldCA9IGl0ZW1NZXRhZGF0YS5vZmZzZXQgKyBpdGVtTWV0YWRhdGEuc2l6ZTtcbiAgICAgICAgbGV0IHN0b3BJbmRleCA9IHN0YXJ0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKHN0b3BJbmRleCA8IHRoaXMuY29sdW1uQ291bnQgLSAxICYmIG9mZnNldCA8IG1heE9mZnNldCkge1xuICAgICAgICAgICAgc3RvcEluZGV4Kys7XG4gICAgICAgICAgICBvZmZzZXQgKz0gdGhpcy5nZXRDZWxsTWV0YURhdGEoc3RvcEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pLnNpemU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0b3BJbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gcm93SW5kZXgg6I635Y+W5Z6C55u05YGP56e76YePXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd09mZnNldChyb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxNZXRhRGF0YShyb3dJbmRleCwgQUlUYWJsZVJvd0NvbHVtblR5cGUucm93KS5vZmZzZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2uIGNvbHVtbkluZGV4IOiOt+WPluawtOW5s+WBj+enu+mHj1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDZWxsTWV0YURhdGEoY29sdW1uSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbikub2Zmc2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWGu+e7k+WMuuWfn+WuveW6plxuICAgICAqL1xuICAgIGdldCBmcm96ZW5Db2x1bW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uT2Zmc2V0KHRoaXMuZnJvemVuQ29sdW1uQ291bnQpIC0gdGhpcy5jb2x1bW5Jbml0U2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gcm93SW5kZXgsIGNvbHVtbkluZGV4IOiOt+WPluWNleWFg+agvOWdkOagh+S/oeaBr1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDZWxsUmVjdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHsgc2l6ZTogaGVpZ2h0LCBvZmZzZXQ6IHkgfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHJvd0luZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgICAgICBjb25zdCB7IHNpemU6IHdpZHRoLCBvZmZzZXQ6IHggfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKGNvbHVtbkluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeCxcbiAgICAgICAgICAgIHksXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvY29vcmRpbmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLG9CQUFvQixFQUFrQixNQUFNLFVBQVUsQ0FBQztBQUV4Rzs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBdUJuQixZQUFZLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixHQUFHLEVBQUUsRUFDdEIsb0JBQW9CLEdBQUcsRUFBRSxFQUN6QixXQUFXLEdBQUcsQ0FBQyxFQUNmLGNBQWMsR0FBRyxDQUFDLEVBQ2xCLGlCQUFpQixHQUFHLENBQUMsRUFDTDtRQTFCcEIscUJBQXFCO1FBQ2Qsc0JBQWlCLEdBQW1CLEVBQUUsQ0FBQztRQUM5QyxzQkFBc0I7UUFDZix5QkFBb0IsR0FBbUIsRUFBRSxDQUFDO1FBS2pELGVBQWU7UUFDUixpQkFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGVBQWU7UUFDUixvQkFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxzQkFBaUIsR0FBd0MsRUFBRSxDQUFDO1FBYy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9C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RCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0YsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xHLE9BQU87WUFDSCxDQUFDO1lBQ0QsQ0FBQztZQUNELEtBQUs7WUFDTCxNQUFNO1NBQ1QsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJVGFibGVDZWxsTWV0YURhdGEsIEFJVGFibGVDb29yZGluYXRlLCBBSVRhYmxlUm93Q29sdW1uVHlwZSwgQUlUYWJsZVNpemVNYXAgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICog55So5LqO5p6E5bu6IENhbnZhcyDln7rnoYDlnZDmoIfns7vvvIzlkI7nu63nmoTnu5jliLblt6XkvZzku6XmraTkuLrln7rnoYBcbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGUge1xuICAgIHByb3RlY3RlZCBfcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcHVibGljIHJvd0NvdW50OiBudW1iZXI7XG4gICAgcHVibGljIGNvbHVtbkNvdW50OiBudW1iZXI7XG4gICAgcHVibGljIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG4gICAgcHVibGljIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIGNvbnRhaW5lckhlaWdodDogbnVtYmVyO1xuICAgIC8vIOeUqCBpbmRleCDmmKDlsIQg5q+P5LiA6KGM55qEIOmrmOW6plxuICAgIHB1YmxpYyByb3dJbmRpY2VzU2l6ZU1hcDogQUlUYWJsZVNpemVNYXAgPSB7fTtcbiAgICAvLyDnlKggaW5kZXgg5pig5bCEIOavj+S4gOWIlyDnmoQg5a695bqmXG4gICAgcHVibGljIGNvbHVtbkluZGljZXNTaXplTWFwOiBBSVRhYmxlU2l6ZU1hcCA9IHt9O1xuICAgIC8vIOmZpOWOu+ihqOWktOWSjOe8luWPt+WIl+ecn+ato+WNleWFg+agvOe7mOWItueahOWIneWni+WAvCB4XG4gICAgcHVibGljIHJvd0luaXRTaXplOiBudW1iZXI7XG4gICAgLy8g6Zmk5Y676KGo5aS05ZKM57yW5Y+35YiX55yf5q2j5Y2V5YWD5qC857uY5Yi255qE5Yid5aeL5YC8IHlcbiAgICBwdWJsaWMgY29sdW1uSW5pdFNpemU6IG51bWJlcjtcbiAgICAvLyDooYzlnZDmoIfpm4bkuK3mnIDlkI7kuIDooYznmoTntKLlvJVcbiAgICBwdWJsaWMgbGFzdFJvd0luZGV4ID0gLTE7XG4gICAgLy8g5YiX5Z2Q5qCH6ZuG5Lit5pyA5ZCO5LiA5YiX55qE57Si5byVXG4gICAgcHVibGljIGxhc3RDb2x1bW5JbmRleCA9IC0xO1xuICAgIHB1YmxpYyByb3dNZXRhRGF0YU1hcDogUmVjb3JkPG51bWJlciwgQUlUYWJsZUNlbGxNZXRhRGF0YT4gPSB7fTtcbiAgICBwdWJsaWMgY29sdW1uTWV0YURhdGFNYXA6IFJlY29yZDxudW1iZXIsIEFJVGFibGVDZWxsTWV0YURhdGE+ID0ge307XG4gICAgcHVibGljIGZyb3plbkNvbHVtbkNvdW50OiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcih7XG4gICAgICAgIHJvd0hlaWdodCxcbiAgICAgICAgcm93Q291bnQsXG4gICAgICAgIGNvbHVtbkNvdW50LFxuICAgICAgICBjb250YWluZXIsXG4gICAgICAgIHJvd0luZGljZXNTaXplTWFwID0ge30sXG4gICAgICAgIGNvbHVtbkluZGljZXNTaXplTWFwID0ge30sXG4gICAgICAgIHJvd0luaXRTaXplID0gMCxcbiAgICAgICAgY29sdW1uSW5pdFNpemUgPSAwLFxuICAgICAgICBmcm96ZW5Db2x1bW5Db3VudCA9IDBcbiAgICB9OiBBSVRhYmxlQ29vcmRpbmF0ZSkge1xuICAgICAgICB0aGlzLl9yb3dIZWlnaHQgPSByb3dIZWlnaHQ7XG4gICAgICAgIHRoaXMucm93Q291bnQgPSByb3dDb3VudDtcbiAgICAgICAgdGhpcy5jb2x1bW5Db3VudCA9IGNvbHVtbkNvdW50O1xuICAgICAgICB0aGlzLnJvd0luaXRTaXplID0gcm93SW5pdFNpemU7XG4gICAgICAgIHRoaXMuY29sdW1uSW5pdFNpemUgPSBjb2x1bW5Jbml0U2l6ZTtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWR0aCA9IGNvbnRhaW5lci5vZmZzZXRXaWR0aDtcbiAgICAgICAgdGhpcy5yb3dJbmRpY2VzU2l6ZU1hcCA9IHJvd0luZGljZXNTaXplTWFwO1xuICAgICAgICB0aGlzLmNvbHVtbkluZGljZXNTaXplTWFwID0gY29sdW1uSW5kaWNlc1NpemVNYXA7XG4gICAgICAgIHRoaXMuY29udGFpbmVySGVpZ2h0ID0gY29udGFpbmVyLm9mZnNldEhlaWdodDtcbiAgICAgICAgdGhpcy5mcm96ZW5Db2x1bW5Db3VudCA9IGZyb3plbkNvbHVtbkNvdW50O1xuICAgICAgICB0aGlzLmNvbnRhaW5lciA9IGNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd0hlaWdodCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd0hlaWdodDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJvd0hlaWdodChoZWlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9yb3dIZWlnaHQgPSBoZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5oC75a695bqmXG4gICAgICovXG4gICAgcHVibGljIGdldCB0b3RhbFdpZHRoKCkge1xuICAgICAgICBjb25zdCB7IG9mZnNldCwgc2l6ZSB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEodGhpcy5jb2x1bW5Db3VudCAtIDEsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgICAgIHJldHVybiBvZmZzZXQgKyBzaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaAu+mrmOW6plxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG90YWxIZWlnaHQoKSB7XG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0LCBzaXplIH0gPSB0aGlzLmdldENlbGxNZXRhRGF0YSh0aGlzLnJvd0NvdW50IC0gMSwgQUlUYWJsZVJvd0NvbHVtblR5cGUucm93KTtcbiAgICAgICAgcmV0dXJuIG9mZnNldCArIHNpemU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2uIHJvd0luZGV4IOiOt+WPluWvueW6lOihjOmrmFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb3dIZWlnaHQoaW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3dJbmRpY2VzU2l6ZU1hcFtpbmRleF0gPz8gdGhpcy5yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2uIGNvbHVtbkluZGV4IOiOt+WPluWvueW6lOWIl+WuvVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5XaWR0aChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbkluZGljZXNTaXplTWFwW2luZGV4XTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDojrflj5bmr4/kuKogY2VsbCDlnoLnm7Qv5rC05bmz5pa55ZCR55qE5Z2Q5qCH5L+h5oGvXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldENlbGxNZXRhRGF0YShpbmRleDogbnVtYmVyLCBpdGVtVHlwZTogQUlUYWJsZVJvd0NvbHVtblR5cGUpOiBBSVRhYmxlQ2VsbE1ldGFEYXRhIHtcbiAgICAgICAgbGV0IGNlbGxNZXRhZGF0YU1hcCwgbGFzdE1lYXN1cmVkSW5kZXgsIG9mZnNldDtcbiAgICAgICAgY29uc3QgaXNDb2x1bW5UeXBlID0gaXRlbVR5cGUgPT09IEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbjtcbiAgICAgICAgaWYgKGlzQ29sdW1uVHlwZSkge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5jb2x1bW5Jbml0U2l6ZTtcbiAgICAgICAgICAgIGxhc3RNZWFzdXJlZEluZGV4ID0gdGhpcy5sYXN0Q29sdW1uSW5kZXg7XG4gICAgICAgICAgICBjZWxsTWV0YWRhdGFNYXAgPSB0aGlzLmNvbHVtbk1ldGFEYXRhTWFwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2Zmc2V0ID0gdGhpcy5yb3dJbml0U2l6ZTtcbiAgICAgICAgICAgIGxhc3RNZWFzdXJlZEluZGV4ID0gdGhpcy5sYXN0Um93SW5kZXg7XG4gICAgICAgICAgICBjZWxsTWV0YWRhdGFNYXAgPSB0aGlzLnJvd01ldGFEYXRhTWFwO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA+IGxhc3RNZWFzdXJlZEluZGV4KSB7XG4gICAgICAgICAgICBpZiAobGFzdE1lYXN1cmVkSW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1NZXRhZGF0YSA9IGNlbGxNZXRhZGF0YU1hcFtsYXN0TWVhc3VyZWRJbmRleF07XG4gICAgICAgICAgICAgICAgb2Zmc2V0ID0gaXRlbU1ldGFkYXRhLm9mZnNldCArIGl0ZW1NZXRhZGF0YS5zaXplO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gbGFzdE1lYXN1cmVkSW5kZXggKyAxOyBpIDw9IGluZGV4OyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzaXplID0gaXNDb2x1bW5UeXBlID8gdGhpcy5jb2x1bW5JbmRpY2VzU2l6ZU1hcFtpXSA6ICh0aGlzLnJvd0luZGljZXNTaXplTWFwW2ldID8/IHRoaXMucm93SGVpZ2h0KTtcblxuICAgICAgICAgICAgICAgIGNlbGxNZXRhZGF0YU1hcFtpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICBzaXplXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgKz0gc2l6ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc0NvbHVtblR5cGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RDb2x1bW5JbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RSb3dJbmRleCA9IGluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjZWxsTWV0YWRhdGFNYXBbaW5kZXhdIHx8IHsgc2l6ZTogMCwgb2Zmc2V0OiAwIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5p+l5om+5pyA6L+R55qE5Y2V5YWD5qC857Si5byVXG4gICAgICog5oCn6IO96L6D5beu77yM5L2G5peg6K665aaC5L2V6YO95Y+v5Lul5om+5YiwXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZmluZE5lYXJlc3RDZWxsSW5kZXgoaW5kZXg6IG51bWJlciwgb2Zmc2V0OiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSkge1xuICAgICAgICBjb25zdCBpdGVtQ291bnQgPSBpdGVtVHlwZSA9PT0gQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uID8gdGhpcy5jb2x1bW5Db3VudCA6IHRoaXMucm93Q291bnQ7XG4gICAgICAgIGxldCBpbnRlcnZhbCA9IDE7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgaXRlbUNvdW50ICYmIHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKGluZGV4LCBpdGVtVHlwZSkub2Zmc2V0IDwgb2Zmc2V0KSB7XG4gICAgICAgICAgICBpbmRleCArPSBpbnRlcnZhbDtcbiAgICAgICAgICAgIGludGVydmFsICo9IDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZE5lYXJlc3RDZWxsSW5kZXhCeUJpbmFyeShvZmZzZXQsIE1hdGguZmxvb3IoaW5kZXggLyAyKSwgTWF0aC5taW4oaW5kZXgsIGl0ZW1Db3VudCAtIDEpLCBpdGVtVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5LqM5YiG5rOV5p+l5om+5pyA6L+R55qE5Y2V5YWD5qC857Si5byVXG4gICAgICog5oCn6IO95pu05L2z77yM5L2G6ZyA6KaB5Yqg6L295pWw5o2uXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZmluZE5lYXJlc3RDZWxsSW5kZXhCeUJpbmFyeShvZmZzZXQ6IG51bWJlciwgbG93OiBudW1iZXIsIGhpZ2g6IG51bWJlciwgaXRlbVR5cGU6IEFJVGFibGVSb3dDb2x1bW5UeXBlKSB7XG4gICAgICAgIHdoaWxlIChsb3cgPD0gaGlnaCkge1xuICAgICAgICAgICAgY29uc3QgbWlkZGxlID0gbG93ICsgTWF0aC5mbG9vcigoaGlnaCAtIGxvdykgLyAyKTtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLmdldENlbGxNZXRhRGF0YShtaWRkbGUsIGl0ZW1UeXBlKS5vZmZzZXQ7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50T2Zmc2V0ID09PSBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbWlkZGxlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50T2Zmc2V0IDwgb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgbG93ID0gbWlkZGxlICsgMTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE9mZnNldCA+IG9mZnNldCkge1xuICAgICAgICAgICAgICAgIGhpZ2ggPSBtaWRkbGUgLSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb3cgPiAtMSA/IGxvdyAtIDEgOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNruWBj+enu+mHj+afpeaJvuacgOi/keeahOWNleWFg+agvOe0ouW8lVxuICAgICAqL1xuICAgIHB1YmxpYyBmaW5kTmVhcmVzdENlbGxJbmRleChvZmZzZXQ6IG51bWJlciwgaXRlbVR5cGU6IEFJVGFibGVSb3dDb2x1bW5UeXBlKSB7XG4gICAgICAgIGxldCBsYXN0SW5kZXg7XG4gICAgICAgIGlmIChpdGVtVHlwZSA9PT0gQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKSB7XG4gICAgICAgICAgICBsYXN0SW5kZXggPSB0aGlzLmxhc3RDb2x1bW5JbmRleDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxhc3RJbmRleCA9IHRoaXMubGFzdFJvd0luZGV4O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNlbGxPZmZzZXQgPSB0aGlzLmdldENlbGxNZXRhRGF0YShsYXN0SW5kZXgsIGl0ZW1UeXBlKS5vZmZzZXQ7XG4gICAgICAgIGNvbnN0IGxhc3RNZWFzdXJlZEl0ZW1PZmZzZXQgPSBsYXN0SW5kZXggPiAwID8gY2VsbE9mZnNldCA6IDA7XG5cbiAgICAgICAgaWYgKGxhc3RNZWFzdXJlZEl0ZW1PZmZzZXQgPj0gb2Zmc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmluZE5lYXJlc3RDZWxsSW5kZXhCeUJpbmFyeShvZmZzZXQsIDAsIGxhc3RJbmRleCwgaXRlbVR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9maW5kTmVhcmVzdENlbGxJbmRleChNYXRoLm1heCgwLCBsYXN0SW5kZXgpLCBvZmZzZXQsIGl0ZW1UeXBlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7lnoLnm7TlgY/np7vph4/mib7liLDotbflp4vljZXlhYPmoLznmoTntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93U3RhcnRJbmRleChvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kTmVhcmVzdENlbGxJbmRleChvZmZzZXQsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2u5Z6C55u06LW35aeL5Y2V5YWD5qC855qE57Si5byV5p+l5om+57uT5p2f5Y2V5YWD5qC855qE57Si5byVXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd1N0b3BJbmRleChzdGFydEluZGV4OiBudW1iZXIsIHNjcm9sbFRvcDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1NZXRhZGF0YSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHN0YXJ0SW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgICAgIGNvbnN0IG1heE9mZnNldCA9IHNjcm9sbFRvcCArIHRoaXMuY29udGFpbmVySGVpZ2h0O1xuICAgICAgICBsZXQgb2Zmc2V0ID0gaXRlbU1ldGFkYXRhLm9mZnNldCArIGl0ZW1NZXRhZGF0YS5zaXplO1xuICAgICAgICBsZXQgc3RvcEluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICB3aGlsZSAoc3RvcEluZGV4IDwgdGhpcy5yb3dDb3VudCAtIDEgJiYgb2Zmc2V0IDwgbWF4T2Zmc2V0KSB7XG4gICAgICAgICAgICBzdG9wSW5kZXgrKztcbiAgICAgICAgICAgIG9mZnNldCArPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdG9wSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdykuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RvcEluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNruawtOW5s+WBj+enu+mHj+aJvuWIsOi1t+Wni+WNleWFg+agvOeahOe0ouW8lVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5TdGFydEluZGV4KG9mZnNldDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmROZWFyZXN0Q2VsbEluZGV4KG9mZnNldCwgQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7msLTlubPotbflp4vljZXlhYPmoLznmoTntKLlvJXmn6Xmib7nu5PmnZ/ljZXlhYPmoLznmoTntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uU3RvcEluZGV4KHN0YXJ0SW5kZXg6IG51bWJlciwgc2Nyb2xsTGVmdDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1NZXRhZGF0YSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHN0YXJ0SW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgICAgIGNvbnN0IG1heE9mZnNldCA9IHNjcm9sbExlZnQgKyB0aGlzLmNvbnRhaW5lcldpZHRoO1xuICAgICAgICBsZXQgb2Zmc2V0ID0gaXRlbU1ldGFkYXRhLm9mZnNldCArIGl0ZW1NZXRhZGF0YS5zaXplO1xuICAgICAgICBsZXQgc3RvcEluZGV4ID0gc3RhcnRJbmRleDtcblxuICAgICAgICB3aGlsZSAoc3RvcEluZGV4IDwgdGhpcy5jb2x1bW5Db3VudCAtIDEgJiYgb2Zmc2V0IDwgbWF4T2Zmc2V0KSB7XG4gICAgICAgICAgICBzdG9wSW5kZXgrKztcbiAgICAgICAgICAgIG9mZnNldCArPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdG9wSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbikuc2l6ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc3RvcEluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriByb3dJbmRleCDojrflj5blnoLnm7TlgY/np7vph49cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93T2Zmc2V0KHJvd0luZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHJvd0luZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpLm9mZnNldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gY29sdW1uSW5kZXgg6I635Y+W5rC05bmz5YGP56e76YePXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtbk9mZnNldChjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxNZXRhRGF0YShjb2x1bW5JbmRleCwgQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uKS5vZmZzZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5Ya757uT5Yy65Z+f5a695bqmXG4gICAgICovXG4gICAgZ2V0IGZyb3plbkNvbHVtbldpZHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDb2x1bW5PZmZzZXQodGhpcy5mcm96ZW5Db2x1bW5Db3VudCkgLSB0aGlzLmNvbHVtbkluaXRTaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriByb3dJbmRleCwgY29sdW1uSW5kZXgg6I635Y+W5Y2V5YWD5qC85Z2Q5qCH5L+h5oGvXG4gICAgICovXG4gICAgcHVibGljIGdldENlbGxSZWN0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgeyBzaXplOiBoZWlnaHQsIG9mZnNldDogeSB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEocm93SW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgICAgIGNvbnN0IHsgc2l6ZTogd2lkdGgsIG9mZnNldDogeCB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEoY29sdW1uSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4LFxuICAgICAgICAgICAgeSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgaGVpZ2h0XG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -29,14 +29,14 @@ export const AITable = {
29
29
  },
30
30
  isCellVisible(aiTable, cell) {
31
31
  const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
32
- const visibleColumnIndexMap = aiTable.context.visibleColumnsMap();
32
+ const visibleColumnIndexMap = aiTable.context.visibleColumnsIndexMap();
33
33
  const [recordId, fieldId] = cell || [];
34
34
  const isVisible = visibleRowIndexMap.has(recordId) && visibleColumnIndexMap.has(fieldId);
35
35
  return isVisible;
36
36
  },
37
37
  getCellIndex(aiTable, cell) {
38
38
  const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
39
- const visibleColumnIndexMap = aiTable.context.visibleColumnsMap();
39
+ const visibleColumnIndexMap = aiTable.context.visibleColumnsIndexMap();
40
40
  if (AITable.isCellVisible(aiTable, cell)) {
41
41
  const [recordId, fieldId] = cell;
42
42
  return {
@@ -45,6 +45,13 @@ export const AITable = {
45
45
  };
46
46
  }
47
47
  return null;
48
+ },
49
+ isFrozenColumn(aiTable, columnIndex) {
50
+ const frozenColumnCount = aiTable.context.frozenColumnCount();
51
+ if (columnIndex <= frozenColumnCount - 1) {
52
+ return true;
53
+ }
54
+ return false;
48
55
  }
49
56
  };
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2FpLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQW9CaEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLFNBQVM7UUFDTCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDN0IsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsY0FBYyxDQUFDLE9BQWdCO1FBQzNCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO0lBQzFDLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDeEQsSUFBSSxpQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDckMsSUFBSSxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLGlCQUFpQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO2FBQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGlCQUFpQixHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO2FBQU0sQ0FBQztZQUNKLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCLEVBQUUsSUFBeUI7UUFDckQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEUsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbkUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLGtCQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFnQixFQUFFLElBQXlCO1FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xFLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ25FLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNqQyxPQUFPO2dCQUNILFFBQVEsRUFBRSxrQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFFO2dCQUM1QyxXQUFXLEVBQUUscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRTthQUNuRCxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsLCBXcml0YWJsZVNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29sb3JzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbG9ycyc7XG5pbXBvcnQgeyBBSVRhYmxlUmVmZXJlbmNlcywgQUlUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IFJlbmRlcmVyQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgQUlSZWNvcmRGaWVsZElkUGF0aCwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRzLCBBSVRhYmxlUmVjb3JkLCBBSVRhYmxlUmVjb3JkcyB9IGZyb20gJy4vY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZSB7XG4gICAgcmVjb3JkczogV3JpdGFibGVTaWduYWw8QUlUYWJsZVJlY29yZHM+O1xuICAgIGZpZWxkczogV3JpdGFibGVTaWduYWw8QUlUYWJsZUZpZWxkcz47XG4gICAgY29udGV4dD86IFJlbmRlcmVyQ29udGV4dDtcbiAgICBzZWxlY3Rpb246IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVTZWxlY3Rpb24+O1xuICAgIGtleXdvcmRzTWF0Y2hlZENlbGxzOiBXcml0YWJsZVNpZ25hbDxTZXQ8c3RyaW5nPj47IC8vIFtgJHtyZWNvcmRJZH06JHtmaWVsZElkfWBdXG4gICAgcmVjb3Jkc01hcDogU2lnbmFsPHsgW2tleTogc3RyaW5nXTogQUlUYWJsZVJlY29yZCB9PjtcbiAgICBmaWVsZHNNYXA6IFNpZ25hbDx7IFtrZXk6IHN0cmluZ106IEFJVGFibGVGaWVsZCB9PjtcbiAgICByZWNvcmRzV2lsbEhpZGRlbjogV3JpdGFibGVTaWduYWw8c3RyaW5nW10+O1xuICAgIHJlY29yZHNXaWxsTW92ZTogV3JpdGFibGVTaWduYWw8c3RyaW5nW10+O1xuICAgIHJlZmVyZW5jZXM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVSZWZlcmVuY2VzPjtcbn1cblxuZXhwb3J0IHR5cGUgQUlQbHVnaW4gPSAoYWlUYWJsZTogQUlUYWJsZSkgPT4gQUlUYWJsZTtcblxuZXhwb3J0IGNvbnN0IEFJVGFibGUgPSB7XG4gICAgZ2V0Q29sb3JzKCkge1xuICAgICAgICByZXR1cm4gQ29sb3JzO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZUZpZWxkcyhhaVRhYmxlOiBBSVRhYmxlKTogQUlUYWJsZUZpZWxkcyB7XG4gICAgICAgIHJldHVybiBhaVRhYmxlLmZpZWxkcygpLmZpbHRlcigoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZVJvd3MoYWlUYWJsZTogQUlUYWJsZSk6IEFJVGFibGVSZWNvcmRzIHtcbiAgICAgICAgcmV0dXJuIGFpVGFibGUucmVjb3JkcygpO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlQ2VsbChhaVRhYmxlOiBBSVRhYmxlKTogQUlSZWNvcmRGaWVsZElkUGF0aCB8IG51bGwge1xuICAgICAgICByZXR1cm4gYWlUYWJsZS5zZWxlY3Rpb24oKS5hY3RpdmVDZWxsO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlUmVjb3JkSWRzKGFpVGFibGU6IEFJVGFibGUpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVjb3JkcyA9IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzO1xuICAgICAgICBsZXQgc2VsZWN0ZWRSZWNvcmRJZHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmIChzZWxlY3RlZFJlY29yZHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gWy4uLnNlbGVjdGVkUmVjb3Jkcy5rZXlzKCldO1xuICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkQ2VsbHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gWy4uLnNlbGVjdGVkQ2VsbHNdLm1hcCgoaXRlbSkgPT4gaXRlbS5zcGxpdCgnOicpWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkUmVjb3JkSWRzO1xuICAgIH0sXG4gICAgaXNDZWxsVmlzaWJsZShhaVRhYmxlOiBBSVRhYmxlLCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZpc2libGVSb3dJbmRleE1hcCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZVJvd3NJbmRleE1hcCgpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1uSW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVDb2x1bW5zTWFwKCk7XG4gICAgICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsIHx8IFtdO1xuICAgICAgICBjb25zdCBpc1Zpc2libGUgPSB2aXNpYmxlUm93SW5kZXhNYXAhLmhhcyhyZWNvcmRJZCkgJiYgdmlzaWJsZUNvbHVtbkluZGV4TWFwLmhhcyhmaWVsZElkKTtcbiAgICAgICAgcmV0dXJuIGlzVmlzaWJsZTtcbiAgICB9LFxuICAgIGdldENlbGxJbmRleChhaVRhYmxlOiBBSVRhYmxlLCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoKTogeyByb3dJbmRleDogbnVtYmVyOyBjb2x1bW5JbmRleDogbnVtYmVyIH0gfCBudWxsIHtcbiAgICAgICAgY29uc3QgdmlzaWJsZVJvd0luZGV4TWFwID0gYWlUYWJsZS5jb250ZXh0IS52aXNpYmxlUm93c0luZGV4TWFwKCk7XG4gICAgICAgIGNvbnN0IHZpc2libGVDb2x1bW5JbmRleE1hcCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZUNvbHVtbnNNYXAoKTtcbiAgICAgICAgaWYgKEFJVGFibGUuaXNDZWxsVmlzaWJsZShhaVRhYmxlLCBjZWxsKSkge1xuICAgICAgICAgICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGw7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJvd0luZGV4OiB2aXNpYmxlUm93SW5kZXhNYXAhLmdldChyZWNvcmRJZCkhLFxuICAgICAgICAgICAgICAgIGNvbHVtbkluZGV4OiB2aXNpYmxlQ29sdW1uSW5kZXhNYXAuZ2V0KGZpZWxkSWQpIVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2FpLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQW1CaEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLFNBQVM7UUFDTCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDN0IsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsY0FBYyxDQUFDLE9BQWdCO1FBQzNCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsT0FBTyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDO0lBQzFDLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDeEQsSUFBSSxpQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDckMsSUFBSSxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNCLGlCQUFpQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO2FBQU0sSUFBSSxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGlCQUFpQixHQUFHLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO2FBQU0sQ0FBQztZQUNKLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCLEVBQUUsSUFBeUI7UUFDckQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEUsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEUsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLGtCQUFtQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFnQixFQUFFLElBQXlCO1FBQ3BELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xFLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3hFLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQztZQUNqQyxPQUFPO2dCQUNILFFBQVEsRUFBRSxrQkFBbUIsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFFO2dCQUM1QyxXQUFXLEVBQUUscUJBQXFCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRTthQUNuRCxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxjQUFjLENBQUMsT0FBZ0IsRUFBRSxXQUFtQjtRQUNoRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxPQUFRLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMvRCxJQUFJLFdBQVcsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvcnMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sb3JzJztcbmltcG9ydCB7IEFJVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBSZW5kZXJlckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IEFJUmVjb3JkRmllbGRJZFBhdGgsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZHMgfSBmcm9tICcuL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGUge1xuICAgIHJlY29yZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVSZWNvcmRzPjtcbiAgICBmaWVsZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVGaWVsZHM+O1xuICAgIGNvbnRleHQ/OiBSZW5kZXJlckNvbnRleHQ7XG4gICAgc2VsZWN0aW9uOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlU2VsZWN0aW9uPjtcbiAgICBrZXl3b3Jkc01hdGNoZWRDZWxsczogV3JpdGFibGVTaWduYWw8U2V0PHN0cmluZz4+OyAvLyBbYCR7cmVjb3JkSWR9OiR7ZmllbGRJZH1gXVxuICAgIHJlY29yZHNNYXA6IFNpZ25hbDx7IFtrZXk6IHN0cmluZ106IEFJVGFibGVSZWNvcmQgfT47XG4gICAgZmllbGRzTWFwOiBTaWduYWw8eyBba2V5OiBzdHJpbmddOiBBSVRhYmxlRmllbGQgfT47XG4gICAgcmVjb3Jkc1dpbGxIaWRkZW46IFdyaXRhYmxlU2lnbmFsPHN0cmluZ1tdPjtcbiAgICByZWNvcmRzV2lsbE1vdmU6IFdyaXRhYmxlU2lnbmFsPHN0cmluZ1tdPjtcbn1cblxuZXhwb3J0IHR5cGUgQUlQbHVnaW4gPSAoYWlUYWJsZTogQUlUYWJsZSkgPT4gQUlUYWJsZTtcblxuZXhwb3J0IGNvbnN0IEFJVGFibGUgPSB7XG4gICAgZ2V0Q29sb3JzKCkge1xuICAgICAgICByZXR1cm4gQ29sb3JzO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZUZpZWxkcyhhaVRhYmxlOiBBSVRhYmxlKTogQUlUYWJsZUZpZWxkcyB7XG4gICAgICAgIHJldHVybiBhaVRhYmxlLmZpZWxkcygpLmZpbHRlcigoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZVJvd3MoYWlUYWJsZTogQUlUYWJsZSk6IEFJVGFibGVSZWNvcmRzIHtcbiAgICAgICAgcmV0dXJuIGFpVGFibGUucmVjb3JkcygpO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlQ2VsbChhaVRhYmxlOiBBSVRhYmxlKTogQUlSZWNvcmRGaWVsZElkUGF0aCB8IG51bGwge1xuICAgICAgICByZXR1cm4gYWlUYWJsZS5zZWxlY3Rpb24oKS5hY3RpdmVDZWxsO1xuICAgIH0sXG4gICAgZ2V0QWN0aXZlUmVjb3JkSWRzKGFpVGFibGU6IEFJVGFibGUpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkUmVjb3JkcyA9IGFpVGFibGUuc2VsZWN0aW9uKCkuc2VsZWN0ZWRSZWNvcmRzO1xuICAgICAgICBjb25zdCBzZWxlY3RlZENlbGxzID0gYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzO1xuICAgICAgICBsZXQgc2VsZWN0ZWRSZWNvcmRJZHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmIChzZWxlY3RlZFJlY29yZHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gWy4uLnNlbGVjdGVkUmVjb3Jkcy5rZXlzKCldO1xuICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdGVkQ2VsbHMuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gWy4uLnNlbGVjdGVkQ2VsbHNdLm1hcCgoaXRlbSkgPT4gaXRlbS5zcGxpdCgnOicpWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNlbGVjdGVkUmVjb3JkSWRzID0gW107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkUmVjb3JkSWRzO1xuICAgIH0sXG4gICAgaXNDZWxsVmlzaWJsZShhaVRhYmxlOiBBSVRhYmxlLCBjZWxsOiBBSVJlY29yZEZpZWxkSWRQYXRoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IHZpc2libGVSb3dJbmRleE1hcCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZVJvd3NJbmRleE1hcCgpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1uSW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVDb2x1bW5zSW5kZXhNYXAoKTtcbiAgICAgICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGNlbGwgfHwgW107XG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHZpc2libGVSb3dJbmRleE1hcCEuaGFzKHJlY29yZElkKSAmJiB2aXNpYmxlQ29sdW1uSW5kZXhNYXAuaGFzKGZpZWxkSWQpO1xuICAgICAgICByZXR1cm4gaXNWaXNpYmxlO1xuICAgIH0sXG4gICAgZ2V0Q2VsbEluZGV4KGFpVGFibGU6IEFJVGFibGUsIGNlbGw6IEFJUmVjb3JkRmllbGRJZFBhdGgpOiB7IHJvd0luZGV4OiBudW1iZXI7IGNvbHVtbkluZGV4OiBudW1iZXIgfSB8IG51bGwge1xuICAgICAgICBjb25zdCB2aXNpYmxlUm93SW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVSb3dzSW5kZXhNYXAoKTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvbHVtbkluZGV4TWFwID0gYWlUYWJsZS5jb250ZXh0IS52aXNpYmxlQ29sdW1uc0luZGV4TWFwKCk7XG4gICAgICAgIGlmIChBSVRhYmxlLmlzQ2VsbFZpc2libGUoYWlUYWJsZSwgY2VsbCkpIHtcbiAgICAgICAgICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBjZWxsO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByb3dJbmRleDogdmlzaWJsZVJvd0luZGV4TWFwIS5nZXQocmVjb3JkSWQpISxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogdmlzaWJsZUNvbHVtbkluZGV4TWFwLmdldChmaWVsZElkKSFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgICBpc0Zyb3plbkNvbHVtbihhaVRhYmxlOiBBSVRhYmxlLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGZyb3plbkNvbHVtbkNvdW50ID0gYWlUYWJsZS5jb250ZXh0IS5mcm96ZW5Db2x1bW5Db3VudCgpO1xuICAgICAgICBpZiAoY29sdW1uSW5kZXggPD0gZnJvemVuQ29sdW1uQ291bnQgLSAxKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufTtcbiJdfQ==
@@ -23,9 +23,8 @@ export function createAITable(records, fields) {
23
23
  }, {});
24
24
  }),
25
25
  recordsWillHidden: signal([]),
26
- recordsWillMove: signal([]),
27
- references: signal({ members: {} })
26
+ recordsWillMove: signal([])
28
27
  };
29
28
  return aiTable;
30
29
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29yZS91dGlscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBdUMsRUFBRSxNQUFxQztJQUN4RyxNQUFNLE9BQU8sR0FBWTtRQUNyQixPQUFPO1FBQ1AsTUFBTTtRQUNOLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDZCxlQUFlLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDMUIsY0FBYyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUN4QixVQUFVLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ0Ysb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQ25CLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDLEVBQ0QsRUFBc0MsQ0FDekMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUNGLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sTUFBTSxFQUFFLENBQUMsTUFBTSxDQUNsQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUNELEVBQXFDLENBQ3hDLENBQUM7UUFDTixDQUFDLENBQUM7UUFDRixpQkFBaUIsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLGVBQWUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzNCLFVBQVUsRUFBRSxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7S0FDdEMsQ0FBQztJQUNGLE9BQU8sT0FBTyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZVNpZ25hbCwgY29tcHV0ZWQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRzLCBBSVRhYmxlUmVjb3JkLCBBSVRhYmxlUmVjb3JkcyB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFJVGFibGUocmVjb3JkczogV3JpdGFibGVTaWduYWw8QUlUYWJsZVJlY29yZHM+LCBmaWVsZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVGaWVsZHM+KTogQUlUYWJsZSB7XG4gICAgY29uc3QgYWlUYWJsZTogQUlUYWJsZSA9IHtcbiAgICAgICAgcmVjb3JkcyxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBzZWxlY3Rpb246IHNpZ25hbCh7XG4gICAgICAgICAgICBzZWxlY3RlZFJlY29yZHM6IG5ldyBTZXQoKSxcbiAgICAgICAgICAgIHNlbGVjdGVkRmllbGRzOiBuZXcgU2V0KCksXG4gICAgICAgICAgICBzZWxlY3RlZENlbGxzOiBuZXcgU2V0KCksXG4gICAgICAgICAgICBhY3RpdmVDZWxsOiBudWxsXG4gICAgICAgIH0pLFxuICAgICAgICBrZXl3b3Jkc01hdGNoZWRDZWxsczogc2lnbmFsKG5ldyBTZXQoKSksXG4gICAgICAgIHJlY29yZHNNYXA6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiByZWNvcmRzKCkucmVkdWNlKFxuICAgICAgICAgICAgICAgIChvYmplY3QsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0W2l0ZW0uX2lkXSA9IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Q7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7fSBhcyB7IFtrZXk6IHN0cmluZ106IEFJVGFibGVSZWNvcmQgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIGZpZWxkc01hcDogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGZpZWxkcygpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAob2JqZWN0LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdFtpdGVtLl9pZF0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBBSVRhYmxlRmllbGQgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSksXG4gICAgICAgIHJlY29yZHNXaWxsSGlkZGVuOiBzaWduYWwoW10pLFxuICAgICAgICByZWNvcmRzV2lsbE1vdmU6IHNpZ25hbChbXSksXG4gICAgICAgIHJlZmVyZW5jZXM6IHNpZ25hbCh7IG1lbWJlcnM6IHt9IH0pXG4gICAgfTtcbiAgICByZXR1cm4gYWlUYWJsZTtcbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29yZS91dGlscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBdUMsRUFBRSxNQUFxQztJQUN4RyxNQUFNLE9BQU8sR0FBWTtRQUNyQixPQUFPO1FBQ1AsTUFBTTtRQUNOLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDZCxlQUFlLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDMUIsY0FBYyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtZQUN4QixVQUFVLEVBQUUsSUFBSTtTQUNuQixDQUFDO1FBQ0Ysb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDdkMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQ25CLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDLEVBQ0QsRUFBc0MsQ0FDekMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUNGLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sTUFBTSxFQUFFLENBQUMsTUFBTSxDQUNsQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUNELEVBQXFDLENBQ3hDLENBQUM7UUFDTixDQUFDLENBQUM7UUFDRixpQkFBaUIsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLGVBQWUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGVTaWduYWwsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBSVRhYmxlKHJlY29yZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVSZWNvcmRzPiwgZmllbGRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGRzPik6IEFJVGFibGUge1xuICAgIGNvbnN0IGFpVGFibGU6IEFJVGFibGUgPSB7XG4gICAgICAgIHJlY29yZHMsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgc2VsZWN0aW9uOiBzaWduYWwoe1xuICAgICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiBuZXcgU2V0KCksXG4gICAgICAgICAgICBzZWxlY3RlZEZpZWxkczogbmV3IFNldCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRDZWxsczogbmV3IFNldCgpLFxuICAgICAgICAgICAgYWN0aXZlQ2VsbDogbnVsbFxuICAgICAgICB9KSxcbiAgICAgICAga2V5d29yZHNNYXRjaGVkQ2VsbHM6IHNpZ25hbChuZXcgU2V0KCkpLFxuICAgICAgICByZWNvcmRzTWFwOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkcygpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAob2JqZWN0LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdFtpdGVtLl9pZF0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge30gYXMgeyBba2V5OiBzdHJpbmddOiBBSVRhYmxlUmVjb3JkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaWVsZHNNYXA6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZHMoKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKG9iamVjdCwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3RbaXRlbS5faWRdID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHt9IGFzIHsgW2tleTogc3RyaW5nXTogQUlUYWJsZUZpZWxkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICByZWNvcmRzV2lsbEhpZGRlbjogc2lnbmFsKFtdKSxcbiAgICAgICAgcmVjb3Jkc1dpbGxNb3ZlOiBzaWduYWwoW10pXG4gICAgfTtcbiAgICByZXR1cm4gYWlUYWJsZTtcbn1cbiJdfQ==