@dxos/react-ui-table 0.7.4 → 0.7.5-main.937ce75

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/lib/browser/{chunk-IYCSJDMB.mjs → chunk-AT7O4RAD.mjs} +4 -4
  2. package/dist/lib/browser/{chunk-IYCSJDMB.mjs.map → chunk-AT7O4RAD.mjs.map} +2 -2
  3. package/dist/lib/browser/index.mjs +1442 -1219
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types/index.mjs +1 -1
  7. package/dist/lib/node/{chunk-MHBMVCFZ.cjs → chunk-YSBXNBDJ.cjs} +6 -6
  8. package/dist/lib/node/{chunk-MHBMVCFZ.cjs.map → chunk-YSBXNBDJ.cjs.map} +2 -2
  9. package/dist/lib/node/index.cjs +1351 -1111
  10. package/dist/lib/node/index.cjs.map +4 -4
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/types/index.cjs +3 -3
  13. package/dist/lib/node/types/index.cjs.map +1 -1
  14. package/dist/lib/node-esm/{chunk-BMWGPXPL.mjs → chunk-6OH2NHUX.mjs} +4 -4
  15. package/dist/lib/node-esm/{chunk-BMWGPXPL.mjs.map → chunk-6OH2NHUX.mjs.map} +2 -2
  16. package/dist/lib/node-esm/index.mjs +1442 -1219
  17. package/dist/lib/node-esm/index.mjs.map +4 -4
  18. package/dist/lib/node-esm/meta.json +1 -1
  19. package/dist/lib/node-esm/types/index.mjs +1 -1
  20. package/dist/types/src/_deprecated/hooks/useColumnSorting.d.ts +1 -1
  21. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts +4 -3
  22. package/dist/types/src/components/Table/ColumnActionsMenu.d.ts.map +1 -1
  23. package/dist/types/src/components/Table/ColumnSettings.d.ts +3 -2
  24. package/dist/types/src/components/Table/ColumnSettings.d.ts.map +1 -1
  25. package/dist/types/src/components/Table/CreateRefPanel.d.ts +3 -2
  26. package/dist/types/src/components/Table/CreateRefPanel.d.ts.map +1 -1
  27. package/dist/types/src/components/Table/RefPanel.d.ts +4 -3
  28. package/dist/types/src/components/Table/RefPanel.d.ts.map +1 -1
  29. package/dist/types/src/components/Table/RowActionsMenu.d.ts +3 -2
  30. package/dist/types/src/components/Table/RowActionsMenu.d.ts.map +1 -1
  31. package/dist/types/src/components/Table/Table.d.ts +2 -1
  32. package/dist/types/src/components/Table/Table.d.ts.map +1 -1
  33. package/dist/types/src/components/Table/Table.stories.d.ts.map +1 -1
  34. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts +3 -2
  35. package/dist/types/src/components/TableCellEditor/TableCellEditor.d.ts.map +1 -1
  36. package/dist/types/src/components/TableCellEditor/TableCellEditor.stories.d.ts.map +1 -1
  37. package/dist/types/src/components/testing.d.ts +55 -71
  38. package/dist/types/src/components/testing.d.ts.map +1 -1
  39. package/dist/types/src/index.d.ts +1 -0
  40. package/dist/types/src/index.d.ts.map +1 -1
  41. package/dist/types/src/model/index.d.ts +1 -0
  42. package/dist/types/src/model/index.d.ts.map +1 -1
  43. package/dist/types/src/model/modal-controller.d.ts +6 -2
  44. package/dist/types/src/model/modal-controller.d.ts.map +1 -1
  45. package/dist/types/src/model/selection-model.d.ts.map +1 -1
  46. package/dist/types/src/model/table-model.d.ts +14 -27
  47. package/dist/types/src/model/table-model.d.ts.map +1 -1
  48. package/dist/types/src/model/table-presentation.d.ts +22 -0
  49. package/dist/types/src/model/table-presentation.d.ts.map +1 -0
  50. package/dist/types/src/model/table-presentation.test.d.ts +2 -0
  51. package/dist/types/src/model/table-presentation.test.d.ts.map +1 -0
  52. package/dist/types/src/model/table-sorting.d.ts +48 -0
  53. package/dist/types/src/model/table-sorting.d.ts.map +1 -0
  54. package/dist/types/src/playwright/TableManager.d.ts +2 -1
  55. package/dist/types/src/playwright/TableManager.d.ts.map +1 -1
  56. package/dist/types/src/types/table.d.ts +118 -154
  57. package/dist/types/src/types/table.d.ts.map +1 -1
  58. package/dist/types/src/util/index.d.ts +1 -0
  59. package/dist/types/src/util/index.d.ts.map +1 -1
  60. package/dist/types/src/util/table-buttons.d.ts +50 -20
  61. package/dist/types/src/util/table-buttons.d.ts.map +1 -1
  62. package/dist/types/src/util/table-controls.d.ts +32 -9
  63. package/dist/types/src/util/table-controls.d.ts.map +1 -1
  64. package/dist/types/src/util/table.d.ts +2 -2
  65. package/dist/types/src/util/table.d.ts.map +1 -1
  66. package/dist/types/tsconfig.tsbuildinfo +1 -0
  67. package/package.json +29 -29
  68. package/src/components/Table/ColumnActionsMenu.tsx +8 -8
  69. package/src/components/Table/ColumnSettings.tsx +11 -11
  70. package/src/components/Table/CreateRefPanel.tsx +13 -14
  71. package/src/components/Table/RefPanel.tsx +9 -9
  72. package/src/components/Table/RowActionsMenu.tsx +6 -7
  73. package/src/components/Table/Table.stories.tsx +40 -23
  74. package/src/components/Table/Table.tsx +235 -148
  75. package/src/components/TableCellEditor/TableCellEditor.stories.tsx +13 -12
  76. package/src/components/TableCellEditor/TableCellEditor.tsx +6 -4
  77. package/src/components/testing.ts +10 -8
  78. package/src/index.ts +2 -0
  79. package/src/model/index.ts +1 -0
  80. package/src/model/modal-controller.ts +15 -48
  81. package/src/model/selection-model.ts +12 -1
  82. package/src/model/table-model.test.ts +4 -71
  83. package/src/model/table-model.ts +61 -292
  84. package/src/model/table-presentation.test.ts +102 -0
  85. package/src/model/table-presentation.ts +217 -0
  86. package/src/model/table-sorting.ts +131 -0
  87. package/src/playwright/TableManager.ts +5 -1
  88. package/src/playwright/smoke.spec.ts +79 -1
  89. package/src/types/table.ts +3 -3
  90. package/src/util/index.ts +1 -0
  91. package/src/util/table-buttons.ts +97 -48
  92. package/src/util/table-controls.ts +71 -7
  93. package/src/util/table.ts +21 -13
@@ -1,87 +1,71 @@
1
1
  import { S } from '@dxos/echo-schema';
2
2
  import { TableType } from '../types';
3
- export declare const TestSchema: import("@dxos/echo-schema").AbstractTypedObject<{
4
- name?: string | undefined;
5
- id: string;
6
- active?: boolean | undefined;
7
- age?: number | undefined;
8
- netWorth?: number | undefined;
9
- } & {
10
- id: string;
11
- }, S.Struct.Encoded<{
3
+ export declare const TestSchema: import("@dxos/echo-schema").TypedObjectPrototype<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
4
+ id: typeof S.String;
5
+ name: S.optional<typeof S.String>;
6
+ age: S.optional<typeof S.Number>;
7
+ active: S.optional<typeof S.Boolean>;
8
+ netWorth: S.optional<typeof S.Number>;
9
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>, S.Struct.Encoded<{
12
10
  id: typeof S.String;
13
11
  name: S.optional<typeof S.String>;
14
12
  age: S.optional<typeof S.Number>;
15
13
  active: S.optional<typeof S.Boolean>;
16
14
  netWorth: S.optional<typeof S.Number>;
17
15
  }>>;
18
- export declare const createTable: (schema?: import("@dxos/echo-schema").AbstractTypedObject<{
19
- name?: string | undefined;
20
- id: string;
21
- active?: boolean | undefined;
22
- age?: number | undefined;
23
- netWorth?: number | undefined;
24
- } & {
25
- id: string;
26
- }, S.Struct.Encoded<{
16
+ export declare const createTable: (schema?: import("@dxos/echo-schema").TypedObjectPrototype<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
17
+ id: typeof S.String;
18
+ name: S.optional<typeof S.String>;
19
+ age: S.optional<typeof S.Number>;
20
+ active: S.optional<typeof S.Boolean>;
21
+ netWorth: S.optional<typeof S.Number>;
22
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>, S.Struct.Encoded<{
27
23
  id: typeof S.String;
28
24
  name: S.optional<typeof S.String>;
29
25
  age: S.optional<typeof S.Number>;
30
26
  active: S.optional<typeof S.Boolean>;
31
27
  netWorth: S.optional<typeof S.Number>;
32
- }>>) => import("@dxos/react-client/echo").ReactiveObject<{
33
- name?: string | undefined;
34
- id: string;
35
- view?: import("@dxos/echo-schema").Ref<{
36
- name: string;
37
- schema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
38
- query: import("@dxos/echo-schema").QueryType;
39
- fields: {
40
- referencePath?: import("@dxos/echo-schema").JsonPath | undefined;
41
- id: string;
42
- path: import("@dxos/echo-schema").JsonPath;
43
- visible?: boolean | undefined;
44
- size?: number | undefined;
45
- }[];
46
- } & {
47
- id: string;
48
- }>;
49
- threads?: readonly import("@dxos/echo-schema").Ref<{
50
- name?: string | undefined;
51
- anchor?: string | undefined;
52
- status?: "active" | "staged" | "resolved" | undefined;
53
- messages: import("@dxos/echo-schema").Ref<{
54
- text: string;
55
- timestamp: string;
56
- state?: import("packages/plugins/plugin-space/dist/types/src").MessageState | undefined;
57
- sender: {
58
- name?: string | undefined;
59
- contact?: import("@dxos/echo-schema").Ref<{
60
- name?: string | undefined;
61
- identifiers: {
62
- readonly value: string;
63
- readonly type: string;
64
- }[];
65
- } & {
66
- id: string;
67
- }>;
68
- identityKey?: string | undefined;
69
- email?: string | undefined;
70
- };
71
- parts?: import("@dxos/echo-schema").Ref<import("@dxos/echo-schema").Expando>[] | undefined;
72
- properties?: {
73
- [x: string]: any;
74
- } | undefined;
75
- context?: import("@dxos/echo-schema").Ref<import("@dxos/echo-schema").Expando>;
76
- } & {
77
- id: string;
78
- }>[];
79
- } & {
80
- id: string;
81
- }>[] | undefined;
82
- } & {
83
- id: string;
84
- }>;
28
+ }>>) => import("@dxos/react-client/echo").ReactiveObject<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
29
+ readonly id: import("@dxos/echo-schema").ObjectIdClass;
30
+ readonly name: S.optional<typeof S.String>;
31
+ readonly view: S.optional<import("@dxos/echo-schema").Ref$<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
32
+ name: S.SchemaClass<string, string, never>;
33
+ query: S.Schema<import("@dxos/echo-schema").QueryType, import("@dxos/echo-schema").QueryType, never>;
34
+ schema: S.optional<S.Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
35
+ fields: S.mutable<S.Array$<S.mutable<S.Struct<{
36
+ id: typeof S.String;
37
+ path: S.Schema<import("@dxos/echo-schema").JsonPath, import("@dxos/echo-schema").JsonPath, never>;
38
+ visible: S.optional<typeof S.Boolean>;
39
+ size: S.optional<typeof S.Number>;
40
+ referencePath: S.optional<S.Schema<import("@dxos/echo-schema").JsonPath, import("@dxos/echo-schema").JsonPath, never>>;
41
+ }>>>>;
42
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>>>;
43
+ readonly threads: S.optional<S.Array$<import("@dxos/echo-schema").Ref$<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
44
+ name: S.optional<typeof S.String>;
45
+ anchor: S.optional<typeof S.String>;
46
+ status: S.optional<S.Union<[S.Literal<["staged"]>, S.Literal<["active"]>, S.Literal<["resolved"]>]>>;
47
+ messages: S.mutable<S.Array$<import("@dxos/echo-schema").Ref$<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
48
+ timestamp: typeof S.String;
49
+ state: S.optional<S.Enums<typeof import("packages/plugins/plugin-space/dist/types/src").MessageState>>;
50
+ sender: S.mutable<S.Struct<{
51
+ contact: S.optional<import("@dxos/echo-schema").Ref$<import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectFields<{
52
+ name: S.optional<typeof S.String>;
53
+ identifiers: S.mutable<S.Array$<S.Struct<{
54
+ type: typeof S.String;
55
+ value: typeof S.String;
56
+ }>>>;
57
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>>>;
58
+ identityKey: S.optional<typeof S.String>;
59
+ email: S.optional<typeof S.String>;
60
+ name: S.optional<typeof S.String>;
61
+ }>>;
62
+ text: typeof S.String;
63
+ parts: S.optional<S.mutable<S.Array$<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").Expando>>>>;
64
+ properties: S.optional<S.mutable<S.Record$<typeof S.String, typeof S.Any>>>;
65
+ context: S.optional<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").Expando>>;
66
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>>>>;
67
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>>>>;
68
+ }, import("packages/core/echo/echo-schema/dist/types/src/object/common").TypedObjectOptions>>;
85
69
  export declare const createItems: (n: number) => {
86
70
  name: string;
87
71
  age: number;
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,CAAC,EAAqC,MAAM,mBAAmB,CAAC;AAMjG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;GAMrB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;yBAEpB,CAAH;;;mBAGO,CAAC;gBACL,CAAC;;;;;;;;;;;;iBAuFwa,CAAC;;oBAA8D,CAAC;uBAAyC,CAAC;wBAAwD,CAAC;;;;;;;;2BAAsP,CAAC;qBAAuC,CAAC;;iBAA8C,CAAC;sBAA4E,CAAC;;;mBAAwE,CAAC;;;;;;;;;EArFnjC,CAAC;AAEF,eAAO,MAAM,WAAW,MAAO,MAAM;;;;;GAWpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,qDAAsD,cAAc,SA8D5F,CAAC"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../../src/components/testing.ts"],"names":[],"mappings":"AAMA,OAAO,EAA0B,CAAC,EAAqC,MAAM,mBAAmB,CAAC;AAMjG,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,eAAO,MAAM,UAAU;;;;;;;;;;;;GAMrB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;cAEP,EACX,WAAM;eAW2B,EAAG,MACvC;gBAGG,EAAG,QAAQ,CAAC,EAAE,MAAM;gBAWrB,EAAG,OAAO,CAAC,EAAG,MAAK,CAAC,EACzB,OAEG,CAAC,EAAG,MAAK;uBAAqB,EAAG,MAAM;kBAAe,EAAI,MAAK;qBACvD,EAAI,QACb,QAAO,EAAG,OAAO;kBACX,EAAG,QACN,QAEA,EAAG,MAAM;2BACR,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;cAwDutD,EAAG,QAAQ,QAAO,EAAG,MAAM;gBAAqD,EAAG,QAAQ,QAAO,EAAG,MAAM;gBAAc,EAAG,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,cAAa,EAAG,OAAO,cAAa,EAAG,OAAO;kBAAgC,EAAG,OAAO,CAAC,EAAE,MAAM,QAAQ,mBAAmB,cAAc,6DAA6D;8BAAyG,EAAG,MAAM;mBAA8C,EAAG,QAAQ,CAAC,EAAE,KAAK;oBAAsF,EAAG,OAAO,CAAC,EAAE,MAAM;yBAAuB,EAAG,QAAQ,QAAQ,mBAAmB,cAAc,6DAA6D;0BAA2C,EAAG,QAAQ,QAAO,EAAG,MAAM;iCAA+B,EAAG,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM;qCAAmC,EAAG,MAAM;sCAAmC,EAAG,MAAM;;0BAA8C,6DAA6D;6BAAiD,EAAG,QAAQ,QAAO,EAAG,MAAM;uBAAqB,EAAG,QAAQ,QAAO,EAAG,MAAM;sBAAoB,EAAG,QAAQ,QAAO,EAAG,MAAM;;yBAAgF,EAAG,MAAM;mBAA+F,EAAG,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,QAAQ,mBAAmB;wBAAsI,EAAG,QAAQ,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,QAAO,EAAG,MAAM,SAAQ,EAAG,GAAG;qBAAyF,EAAG,QAAQ,QAAQ,mBAAmB;kBAAgC,6DAA6D;;6FArFhnH,CAAC;AAEF,eAAO,MAAM,WAAW,MAAO,MAAM;;;;;GAWpC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,YAAY,qDAAsD,cAAc,SA8D5F,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import translations from './translations';
2
2
  export * from './components';
3
3
  export * from './hooks';
4
+ export * from './model';
4
5
  export * from './types';
5
6
  export * from './util';
6
7
  export { translations };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './table-model';
2
2
  export * from './modal-controller';
3
+ export * from './table-presentation';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/model/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type RefObject, type MouseEvent } from 'react';
1
+ import { type RefObject } from 'react';
2
2
  import { type ReactiveObject } from '@dxos/live-object';
3
3
  export type ColumnSettingsMode = {
4
4
  type: 'create';
@@ -32,7 +32,11 @@ export declare class ModalController {
32
32
  private readonly _triggerRef;
33
33
  get state(): import("@preact/signals-core").Signal<ModalState>;
34
34
  get trigger(): RefObject<HTMLButtonElement>;
35
- handleClick: (event: MouseEvent) => boolean;
35
+ setTrigger: (trigger: HTMLElement) => void;
36
+ showRowMenu: (rowIndex: number) => void;
37
+ showColumnMenu: (fieldId: string) => void;
38
+ showColumnCreator: () => void;
39
+ showReferencePanel: (targetId: string, schemaId: string) => void;
36
40
  openColumnSettings: () => void;
37
41
  openCreateRef: (typename: string, anchorCell: Element | null, initialValues?: Record<string, string>, onCreate?: (obj: ReactiveObject<any>) => void) => void;
38
42
  close: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"modal-controller.d.ts","sourceRoot":"","sources":["../../../../src/model/modal-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAyB,MAAM,OAAO,CAAC;AAE/E,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxD,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC/C,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8E;IAE1G,IAAW,KAAK,sDAEf;IAED,IAAW,OAAO,IACW,SAAS,CAAC,iBAAiB,CAAC,CACxD;IAEM,WAAW,UAAW,UAAU,KAAG,OAAO,CAiD/C;IAEK,kBAAkB,aAWvB;IAEK,aAAa,aACR,MAAM,cACJ,OAAO,GAAG,IAAI,kBACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAC3B,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,UAa7C;IAEK,KAAK,aAEV;CACH"}
1
+ {"version":3,"file":"modal-controller.d.ts","sourceRoot":"","sources":["../../../../src/model/modal-controller.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAE9D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAExF,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IACE,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;CAC/C,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,kBAAkB,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA8E;IAE1G,IAAW,KAAK,sDAEf;IAED,IAAW,OAAO,IACW,SAAS,CAAC,iBAAiB,CAAC,CACxD;IAEM,UAAU,YAAa,WAAW,UAEvC;IAEK,WAAW,aAAc,MAAM,UAEpC;IAEK,cAAc,YAAa,MAAM,UAEtC;IAEK,iBAAiB,aAEtB;IAEK,kBAAkB,aAAc,MAAM,YAAY,MAAM,UAE7D;IAEK,kBAAkB,aAWvB;IAEK,aAAa,aACR,MAAM,cACJ,OAAO,GAAG,IAAI,kBACV,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,aAC3B,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,KAAK,IAAI,UAa7C;IAEK,KAAK,aAEV;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"selection-model.d.ts","sourceRoot":"","sources":["../../../../src/model/selection-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,qBAAa,cAAc,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ;IAuBhE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAvBvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAE7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAO/B;IAEH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkE;IAEhG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAM1B;gBAGgB,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAC1B,mBAAmB,CAAC,GAAE,MAAM,IAAI,aAAA;cAK1B,KAAK;IAY9B,IAAW,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAElD;IAED,IAAW,YAAY,IAAI,cAAc,CAAC,OAAO,CAAC,CAEjD;IAED,IAAW,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC,CAEnD;IAEM,eAAe,QAAO,CAAC,EAAE,CAG9B;IAEK,kBAAkB,aAAc,MAAM,KAAG,OAAO,CAGrD;IAEK,gBAAgB,WAAY,CAAC,KAAG,OAAO,CAE5C;IAMK,0BAA0B,aAAc,MAAM,KAAG,IAAI,CAW1D;IAEK,YAAY,SAAU,KAAK,GAAG,MAAM,KAAG,IAAI,CAEhD;CACH"}
1
+ {"version":3,"file":"selection-model.d.ts","sourceRoot":"","sources":["../../../../src/model/selection-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,qBAAa,cAAc,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ;IAyBhE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAzBvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAE7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAQ/B;IAEH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkE;IAEhG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO1B;gBAGgB,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAC1B,mBAAmB,CAAC,GAAE,MAAM,IAAI,aAAA;cAK1B,KAAK;IAY9B,IAAW,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAElD;IAED,IAAW,YAAY,IAAI,cAAc,CAAC,OAAO,CAAC,CAEjD;IAED,IAAW,cAAc,IAAI,cAAc,CAAC,OAAO,CAAC,CAEnD;IAEM,eAAe,QAAO,CAAC,EAAE,CAG9B;IAEK,kBAAkB,aAAc,MAAM,KAAG,OAAO,CAGrD;IAEK,gBAAgB,WAAY,CAAC,KAAG,OAAO,CAE5C;IAMK,0BAA0B,aAAc,MAAM,KAAG,IAAI,CAW1D;IAEK,YAAY,SAAU,KAAK,GAAG,MAAM,KAAG,IAAI,CAWhD;CACH"}
@@ -1,16 +1,11 @@
1
1
  import { type ReadonlySignal } from '@preact/signals-core';
2
2
  import { Resource } from '@dxos/context';
3
3
  import { type JsonProp } from '@dxos/echo-schema';
4
- import { type DxGridAxisMeta, type DxGridPlane, type DxGridPlaneCells, type DxGridPlaneRange, type DxGridPlanePosition, type DxGridPosition } from '@dxos/react-ui-grid';
4
+ import { type DxGridAxisMeta, type DxGridPlanePosition, type DxGridPosition } from '@dxos/react-ui-grid';
5
5
  import { type ViewProjection } from '@dxos/schema';
6
- import { ModalController } from './modal-controller';
7
6
  import { SelectionModel } from './selection-model';
7
+ import { type SortConfig, type SortDirection } from './table-sorting';
8
8
  import { type TableType } from '../types';
9
- export type SortDirection = 'asc' | 'desc';
10
- export type SortConfig = {
11
- fieldId: string;
12
- direction: SortDirection;
13
- };
14
9
  export type BaseTableRow = Record<JsonProp, any> & {
15
10
  id: string;
16
11
  };
@@ -37,43 +32,30 @@ export declare class TableModel<T extends BaseTableRow = {
37
32
  private readonly _table;
38
33
  private readonly _projection;
39
34
  private readonly _visibleRange;
40
- /**
41
- * Maps display indices to data indices.
42
- * Used for translating between sorted/displayed order and original data order.
43
- * Keys are display indices, values are corresponding data indices.
44
- */
45
- private readonly _displayToDataIndex;
46
35
  private readonly _onInsertRow?;
47
36
  private readonly _onDeleteRows?;
48
37
  private readonly _onDeleteColumn?;
49
38
  private readonly _onCellUpdate?;
50
39
  private readonly _onRowOrderChanged?;
40
+ private readonly _rows;
51
41
  private readonly _sorting;
52
- private _sortedRows;
53
- private _rows;
54
42
  private _pinnedRows;
55
43
  private _selection;
56
44
  private _columnMeta?;
57
- private readonly _modalController;
58
45
  constructor({ table, projection, sorting, pinnedRows, onCellUpdate, onDeleteColumn, onDeleteRows, onInsertRow, onRowOrderChanged, }: TableModelProps<T>);
59
46
  get table(): TableType;
60
47
  get projection(): ViewProjection;
48
+ get rows(): ReadonlySignal<T[]>;
49
+ /**
50
+ * @reactive
51
+ */
52
+ get sorting(): SortConfig | undefined;
61
53
  get pinnedRows(): NonNullable<TableModelProps<T>['pinnedRows']>;
62
54
  get columnMeta(): ReadonlySignal<DxGridAxisMeta>;
63
- get sorting(): SortConfig | undefined;
64
- get modalController(): ModalController;
65
55
  get selection(): SelectionModel<T>;
66
56
  protected _open(): Promise<void>;
67
57
  private initializeColumnMeta;
68
- private initializeSorting;
69
58
  private initializeEffects;
70
- getCells: (range: DxGridPlaneRange, plane: DxGridPlane) => DxGridPlaneCells;
71
- private getMainGridCells;
72
- private getHeaderCells;
73
- private getSelectionColumnCells;
74
- private getActionColumnCells;
75
- private getSelectAllCell;
76
- private getNewColumnCell;
77
59
  setRows: (obj: T[]) => void;
78
60
  getRowCount: () => number;
79
61
  getColumnCount: () => number;
@@ -81,8 +63,13 @@ export declare class TableModel<T extends BaseTableRow = {
81
63
  deleteRow: (rowIndex: number) => void;
82
64
  getCellData: ({ col, row }: DxGridPlanePosition) => any;
83
65
  setCellData: ({ col, row }: DxGridPlanePosition, value: any) => void;
66
+ /**
67
+ * Updates a cell's value using a transform function.
68
+ * @param {DxGridPlanePosition} position - The position of the cell to update.
69
+ * @param {(value: any) => any} update - A function that takes the current value and returns the updated value.
70
+ */
71
+ updateCellData({ col, row }: DxGridPlanePosition, update: (value: any) => any): void;
84
72
  deleteColumn(fieldId: string): void;
85
- handleGridClick: (event: React.MouseEvent) => void;
86
73
  setColumnWidth(columnIndex: number, width: number): void;
87
74
  setSort(fieldId: string, direction: SortDirection): void;
88
75
  clearSort(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"table-model.d.ts","sourceRoot":"","sources":["../../../../src/model/table-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-model.d.ts","sourceRoot":"","sources":["../../../../src/model/table-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type DxGridPlane, type DxGridPlaneCells, type DxGridPlaneRange } from '@dxos/react-ui-grid';
2
+ import { type BaseTableRow, type TableModel } from './table-model';
3
+ /**
4
+ * Presentation layer for a table component, handling cell rendering and grid display logic.
5
+ * Manages rendering of table cells, headers, selection columns, and action columns across
6
+ * different grid planes.
7
+ */
8
+ export declare class TablePresentation<T extends BaseTableRow = {
9
+ id: string;
10
+ }> {
11
+ private readonly model;
12
+ private readonly _visibleRange;
13
+ constructor(model: TableModel<T>, _visibleRange?: import("@preact/signals-core").Signal<DxGridPlaneRange>);
14
+ getCells(range: DxGridPlaneRange, plane: DxGridPlane): DxGridPlaneCells;
15
+ private getMainGridCells;
16
+ private getHeaderCells;
17
+ private getSelectionColumnCells;
18
+ private getActionColumnCells;
19
+ private getSelectAllCell;
20
+ private getNewColumnCell;
21
+ }
22
+ //# sourceMappingURL=table-presentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-presentation.d.ts","sourceRoot":"","sources":["../../../../src/model/table-presentation.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAErB,KAAK,gBAAgB,EAEtB,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAGnE;;;;GAIG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,YAAY,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE;IAElE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EACpB,aAAa,0DAG5B;IAGG,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,GAAG,gBAAgB;IAoB9E,OAAO,CAAC,gBAAgB;IAoFxB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,uBAAuB;IAgB/B,OAAO,CAAC,oBAAoB;IAgB5B,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,gBAAgB;CAYzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=table-presentation.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-presentation.test.d.ts","sourceRoot":"","sources":["../../../../src/model/table-presentation.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { type Signal, type ReadonlySignal } from '@preact/signals-core';
2
+ import { type ViewProjection } from '@dxos/schema';
3
+ import { type BaseTableRow } from './table-model';
4
+ import { type TableType } from '../types';
5
+ export type SortDirection = 'asc' | 'desc';
6
+ export type SortConfig = {
7
+ fieldId: string;
8
+ direction: SortDirection;
9
+ };
10
+ /**
11
+ * Manages table sorting functionality through display and data index mapping.
12
+ *
13
+ * When a table is sorted, rows visually reorder but we need to maintain references
14
+ * to the original data positions. This is handled through two types of indices:
15
+ *
16
+ * - Display indices: The visual positions after sorting
17
+ * - Data indices: The original positions in the source data
18
+ *
19
+ * The _displayToDataIndex map maintains these relationships, enabling lookups
20
+ * between visual and source positions.
21
+ *
22
+ * Example mapping between display and data indices:
23
+ *
24
+ * Original Data: Sorted Display: Mapping: (Display → Data)
25
+ * ┌──────────────┐ ┌──────────────┐ ┌────────┐
26
+ * │ 0: "Banana" │ => │ 0: "Apple" │ => │ 0 => 1 │
27
+ * │ 1: "Apple" │ => │ 1: "Banana" │ => │ 1 => 0 │
28
+ * │ 2: "Cherry" │ => │ 2: "Cherry" │ => │ 2 => 2 │
29
+ * └──────────────┘ └──────────────┘ └────────┘
30
+ */
31
+ export declare class TableSorting<T extends BaseTableRow> {
32
+ private readonly _table;
33
+ private readonly _projection;
34
+ private readonly _displayToDataIndex;
35
+ private readonly _sorting;
36
+ private readonly _rows;
37
+ readonly sortedRows: ReadonlySignal<T[]>;
38
+ constructor(rows: Signal<T[]>, _table: TableType, _projection: ViewProjection);
39
+ /**
40
+ * @reactive
41
+ */
42
+ get sorting(): SortConfig | undefined;
43
+ getDataIndex(displayIndex: number): number;
44
+ setSort(fieldId: string, direction: SortDirection): void;
45
+ private initialiseSortedRows;
46
+ private getSortValue;
47
+ }
48
+ //# sourceMappingURL=table-sorting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-sorting.d.ts","sourceRoot":"","sources":["../../../../src/model/table-sorting.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,MAAM,EAAU,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK1F,OAAO,EAAqC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtF,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,UAAU,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,UAAU,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,YAAY;IAQ5C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAR9B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IACjE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IACtE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,SAAgB,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;gBAG9C,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EACA,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,cAAc;IAM9C;;OAEG;IACH,IAAW,OAAO,IAAI,UAAU,GAAG,SAAS,CAE3C;IAEM,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAI1C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI;IAQ/D,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,YAAY;CAwBrB"}
@@ -1,4 +1,4 @@
1
- import { type Page } from '@playwright/test';
1
+ import { type Locator, type Page } from '@playwright/test';
2
2
  import { DxGridManager } from '@dxos/lit-grid/testing';
3
3
  export declare class TableManager {
4
4
  private readonly page;
@@ -8,6 +8,7 @@ export declare class TableManager {
8
8
  deleteColumn(index: number): Promise<void>;
9
9
  deleteRow(index?: number): Promise<void>;
10
10
  toggleSelectAll(): Promise<void>;
11
+ selection(index: number): Locator;
11
12
  sortColumn(index: number, direction: 'ascending' | 'descending'): Promise<void>;
12
13
  addColumn({ label, format }: {
13
14
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../../src/playwright/TableManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAevD,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;gBAET,IAAI,EAAE,IAAI;IAIvC,IAAW,IAAI,IAAI,aAAa,CAE/B;IAEY,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,SAAS,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/E,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ9F"}
1
+ {"version":3,"file":"TableManager.d.ts","sourceRoot":"","sources":["../../../../src/playwright/TableManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAevD,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;gBAET,IAAI,EAAE,IAAI;IAIvC,IAAW,IAAI,IAAI,aAAa,CAE/B;IAEY,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK1C,SAAS,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI3B,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/E,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ9F"}