@dxos/plugin-sheet 0.6.14-main.7bd9c89 → 0.6.14-main.8b352a0

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 (217) hide show
  1. package/dist/lib/browser/{SheetContainer-AKWROARP.mjs → SheetContainer-R65IDJHN.mjs} +54 -58
  2. package/dist/lib/browser/SheetContainer-R65IDJHN.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-BWN5DZWZ.mjs → chunk-5KVQ5IPW.mjs} +3 -12
  4. package/dist/lib/browser/chunk-5KVQ5IPW.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-FGMFOW6U.mjs → chunk-I2DKJ72A.mjs} +570 -669
  6. package/dist/lib/browser/chunk-I2DKJ72A.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-GSV5QNLD.mjs → chunk-KCYJSOFB.mjs} +252 -33
  8. package/dist/lib/browser/chunk-KCYJSOFB.mjs.map +7 -0
  9. package/dist/lib/browser/{graph-M4IQ76QX.mjs → compute-graph-SJT67236.mjs} +4 -2
  10. package/dist/lib/browser/index.mjs +62 -20
  11. package/dist/lib/browser/index.mjs.map +4 -4
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/types.mjs +1 -1
  14. package/dist/lib/node/{SheetContainer-N5IQGEFL.cjs → SheetContainer-6BO4C5X2.cjs} +52 -62
  15. package/dist/lib/node/SheetContainer-6BO4C5X2.cjs.map +7 -0
  16. package/dist/lib/node/{chunk-NZARD7UP.cjs → chunk-2XJ5I4UF.cjs} +6 -15
  17. package/dist/lib/node/chunk-2XJ5I4UF.cjs.map +7 -0
  18. package/dist/lib/node/{chunk-53BMSUIK.cjs → chunk-DEPJHN47.cjs} +534 -646
  19. package/dist/lib/node/chunk-DEPJHN47.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-5XPK2V4A.cjs → chunk-JF5XNTF3.cjs} +257 -28
  21. package/dist/lib/node/chunk-JF5XNTF3.cjs.map +7 -0
  22. package/dist/lib/node/{graph-Q3N2X26H.cjs → compute-graph-AQBDL7HO.cjs} +21 -19
  23. package/dist/lib/node/compute-graph-AQBDL7HO.cjs.map +7 -0
  24. package/dist/lib/node/index.cjs +70 -31
  25. package/dist/lib/node/index.cjs.map +4 -4
  26. package/dist/lib/node/meta.json +1 -1
  27. package/dist/lib/node/types.cjs +6 -6
  28. package/dist/lib/node/types.cjs.map +1 -1
  29. package/dist/lib/node-esm/{SheetContainer-46PBMF2E.mjs → SheetContainer-MJXC5E3P.mjs} +54 -58
  30. package/dist/lib/node-esm/SheetContainer-MJXC5E3P.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-T3PRH7QS.mjs → chunk-25V7WY4R.mjs} +570 -669
  32. package/dist/lib/node-esm/chunk-25V7WY4R.mjs.map +7 -0
  33. package/dist/lib/node-esm/{chunk-WFDTY3IC.mjs → chunk-5TXLF6PL.mjs} +3 -12
  34. package/dist/lib/node-esm/chunk-5TXLF6PL.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-5WPZCXNS.mjs → chunk-XBEHKYO7.mjs} +251 -33
  36. package/dist/lib/node-esm/chunk-XBEHKYO7.mjs.map +7 -0
  37. package/dist/lib/node-esm/{graph-SMPUMOV2.mjs → compute-graph-FRCKXEYK.mjs} +4 -2
  38. package/dist/lib/node-esm/index.mjs +62 -20
  39. package/dist/lib/node-esm/index.mjs.map +4 -4
  40. package/dist/lib/node-esm/meta.json +1 -1
  41. package/dist/lib/node-esm/types.mjs +1 -1
  42. package/dist/types/src/SheetPlugin.d.ts.map +1 -1
  43. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts +3 -1
  44. package/dist/types/src/components/ComputeGraph/ComputeGraphContextProvider.d.ts.map +1 -1
  45. package/dist/types/src/components/GridSheet/GridSheet.d.ts.map +1 -1
  46. package/dist/types/src/components/GridSheet/GridSheet.stories.d.ts.map +1 -1
  47. package/dist/types/src/components/GridSheet/util.d.ts +1 -2
  48. package/dist/types/src/components/GridSheet/util.d.ts.map +1 -1
  49. package/dist/types/src/components/RangeList/RangeList.d.ts +7 -0
  50. package/dist/types/src/components/RangeList/RangeList.d.ts.map +1 -0
  51. package/dist/types/src/components/RangeList/index.d.ts +2 -0
  52. package/dist/types/src/components/RangeList/index.d.ts.map +1 -0
  53. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts +6 -3
  54. package/dist/types/src/components/SheetContainer/SheetContainer.d.ts.map +1 -1
  55. package/dist/types/src/components/SheetContext/SheetContext.d.ts +7 -5
  56. package/dist/types/src/components/SheetContext/SheetContext.d.ts.map +1 -1
  57. package/dist/types/src/components/Toolbar/Toolbar.d.ts +1 -1
  58. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
  59. package/dist/types/src/components/index.d.ts +5 -2
  60. package/dist/types/src/components/index.d.ts.map +1 -1
  61. package/dist/types/src/compute-graph/compute-graph-registry.d.ts.map +1 -0
  62. package/dist/types/src/{graph → compute-graph}/compute-graph.d.ts +1 -1
  63. package/dist/types/src/compute-graph/compute-graph.d.ts.map +1 -0
  64. package/dist/types/src/compute-graph/compute-graph.stories.d.ts.map +1 -0
  65. package/dist/types/src/compute-graph/compute-graph.test.d.ts.map +1 -0
  66. package/dist/types/src/compute-graph/compute-node.d.ts.map +1 -0
  67. package/dist/types/src/compute-graph/functions/async-function.d.ts.map +1 -0
  68. package/dist/types/src/compute-graph/functions/edge-function.d.ts.map +1 -0
  69. package/dist/types/src/compute-graph/functions/function-defs.d.ts.map +1 -0
  70. package/dist/types/src/compute-graph/functions/index.d.ts.map +1 -0
  71. package/dist/types/src/compute-graph/hyperformula.test.d.ts.map +1 -0
  72. package/dist/types/src/compute-graph/index.d.ts.map +1 -0
  73. package/dist/types/src/compute-graph/testing/index.d.ts.map +1 -0
  74. package/dist/types/src/compute-graph/testing/test-builder.d.ts.map +1 -0
  75. package/dist/types/src/compute-graph/testing/test-plugin.d.ts.map +1 -0
  76. package/dist/types/src/compute-graph/util.d.ts.map +1 -0
  77. package/dist/types/src/defs/index.d.ts +1 -1
  78. package/dist/types/src/defs/index.d.ts.map +1 -1
  79. package/dist/types/src/defs/sheet-range-types.d.ts +1 -1
  80. package/dist/types/src/defs/sheet-range-types.d.ts.map +1 -1
  81. package/dist/types/src/defs/types.d.ts +6 -0
  82. package/dist/types/src/defs/types.d.ts.map +1 -1
  83. package/dist/types/src/defs/util.d.ts +2 -6
  84. package/dist/types/src/defs/util.d.ts.map +1 -1
  85. package/dist/types/src/extensions/compute.d.ts +1 -1
  86. package/dist/types/src/extensions/compute.d.ts.map +1 -1
  87. package/dist/types/src/extensions/editor/extension.d.ts +23 -3
  88. package/dist/types/src/extensions/editor/extension.d.ts.map +1 -1
  89. package/dist/types/src/index.d.ts +1 -1
  90. package/dist/types/src/index.d.ts.map +1 -1
  91. package/dist/types/src/integrations/index.d.ts +2 -0
  92. package/dist/types/src/integrations/index.d.ts.map +1 -0
  93. package/dist/types/src/integrations/thread-ranges.d.ts +7 -0
  94. package/dist/types/src/integrations/thread-ranges.d.ts.map +1 -0
  95. package/dist/types/src/model/index.d.ts +1 -1
  96. package/dist/types/src/model/index.d.ts.map +1 -1
  97. package/dist/types/src/model/sheet-model.d.ts +1 -1
  98. package/dist/types/src/model/sheet-model.d.ts.map +1 -1
  99. package/dist/types/src/{hooks → model}/useSheetModel.d.ts +1 -1
  100. package/dist/types/src/model/useSheetModel.d.ts.map +1 -0
  101. package/dist/types/src/serializer.d.ts +4 -0
  102. package/dist/types/src/serializer.d.ts.map +1 -0
  103. package/dist/types/src/testing/testing.d.ts +1 -1
  104. package/dist/types/src/testing/testing.d.ts.map +1 -1
  105. package/dist/types/src/translations.d.ts +13 -3
  106. package/dist/types/src/translations.d.ts.map +1 -1
  107. package/dist/types/src/types.d.ts +4 -30
  108. package/dist/types/src/types.d.ts.map +1 -1
  109. package/package.json +43 -50
  110. package/src/SheetPlugin.tsx +25 -12
  111. package/src/components/ComputeGraph/ComputeGraphContextProvider.tsx +19 -2
  112. package/src/components/FunctionEditor/FunctionEditor.tsx +5 -5
  113. package/src/components/GridSheet/GridSheet.stories.tsx +3 -1
  114. package/src/components/GridSheet/GridSheet.tsx +118 -22
  115. package/src/components/GridSheet/SheetCellEditor.stories.tsx +1 -1
  116. package/src/components/GridSheet/util.ts +24 -14
  117. package/src/components/RangeList/RangeList.tsx +53 -0
  118. package/src/components/RangeList/index.ts +5 -0
  119. package/src/components/SheetContainer/SheetContainer.stories.tsx +3 -3
  120. package/src/components/SheetContainer/SheetContainer.tsx +10 -4
  121. package/src/components/SheetContext/SheetContext.tsx +43 -20
  122. package/src/components/Toolbar/Toolbar.tsx +44 -41
  123. package/src/components/index.ts +1 -0
  124. package/src/{graph → compute-graph}/compute-graph.stories.tsx +2 -1
  125. package/src/{graph → compute-graph}/compute-graph.ts +5 -2
  126. package/src/{graph → compute-graph}/compute-node.ts +2 -3
  127. package/src/defs/index.ts +1 -1
  128. package/src/defs/sheet-range-types.ts +5 -4
  129. package/src/defs/types.ts +6 -1
  130. package/src/defs/util.ts +3 -19
  131. package/src/extensions/compute.stories.tsx +2 -2
  132. package/src/extensions/compute.ts +2 -2
  133. package/src/extensions/editor/extension.test.ts +1 -1
  134. package/src/extensions/editor/extension.ts +48 -23
  135. package/src/index.ts +2 -2
  136. package/src/integrations/index.ts +5 -0
  137. package/src/integrations/thread-ranges.ts +101 -0
  138. package/src/model/index.ts +1 -1
  139. package/src/model/sheet-model.test.ts +1 -1
  140. package/src/model/sheet-model.ts +13 -8
  141. package/src/{hooks → model}/useSheetModel.ts +1 -1
  142. package/src/serializer.ts +27 -0
  143. package/src/testing/testing.tsx +1 -1
  144. package/src/translations.ts +13 -3
  145. package/src/types.ts +4 -2
  146. package/dist/lib/browser/SheetContainer-AKWROARP.mjs.map +0 -7
  147. package/dist/lib/browser/chunk-BWN5DZWZ.mjs.map +0 -7
  148. package/dist/lib/browser/chunk-FGMFOW6U.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-GSV5QNLD.mjs.map +0 -7
  150. package/dist/lib/node/SheetContainer-N5IQGEFL.cjs.map +0 -7
  151. package/dist/lib/node/chunk-53BMSUIK.cjs.map +0 -7
  152. package/dist/lib/node/chunk-5XPK2V4A.cjs.map +0 -7
  153. package/dist/lib/node/chunk-NZARD7UP.cjs.map +0 -7
  154. package/dist/lib/node/graph-Q3N2X26H.cjs.map +0 -7
  155. package/dist/lib/node-esm/SheetContainer-46PBMF2E.mjs.map +0 -7
  156. package/dist/lib/node-esm/chunk-5WPZCXNS.mjs.map +0 -7
  157. package/dist/lib/node-esm/chunk-T3PRH7QS.mjs.map +0 -7
  158. package/dist/lib/node-esm/chunk-WFDTY3IC.mjs.map +0 -7
  159. package/dist/types/src/graph/compute-graph-registry.d.ts.map +0 -1
  160. package/dist/types/src/graph/compute-graph.d.ts.map +0 -1
  161. package/dist/types/src/graph/compute-graph.stories.d.ts.map +0 -1
  162. package/dist/types/src/graph/compute-graph.test.d.ts.map +0 -1
  163. package/dist/types/src/graph/compute-node.d.ts.map +0 -1
  164. package/dist/types/src/graph/functions/async-function.d.ts.map +0 -1
  165. package/dist/types/src/graph/functions/edge-function.d.ts.map +0 -1
  166. package/dist/types/src/graph/functions/function-defs.d.ts.map +0 -1
  167. package/dist/types/src/graph/functions/index.d.ts.map +0 -1
  168. package/dist/types/src/graph/hyperformula.test.d.ts.map +0 -1
  169. package/dist/types/src/graph/index.d.ts.map +0 -1
  170. package/dist/types/src/graph/testing/index.d.ts.map +0 -1
  171. package/dist/types/src/graph/testing/test-builder.d.ts.map +0 -1
  172. package/dist/types/src/graph/testing/test-plugin.d.ts.map +0 -1
  173. package/dist/types/src/graph/util.d.ts.map +0 -1
  174. package/dist/types/src/hooks/hooks.stories.d.ts +0 -6
  175. package/dist/types/src/hooks/hooks.stories.d.ts.map +0 -1
  176. package/dist/types/src/hooks/index.d.ts +0 -4
  177. package/dist/types/src/hooks/index.d.ts.map +0 -1
  178. package/dist/types/src/hooks/threads.d.ts +0 -8
  179. package/dist/types/src/hooks/threads.d.ts.map +0 -1
  180. package/dist/types/src/hooks/useComputeGraph.d.ts +0 -7
  181. package/dist/types/src/hooks/useComputeGraph.d.ts.map +0 -1
  182. package/dist/types/src/hooks/useSheetModel.d.ts.map +0 -1
  183. package/dist/types/src/model/decorations.d.ts +0 -26
  184. package/dist/types/src/model/decorations.d.ts.map +0 -1
  185. package/src/hooks/hooks.stories.tsx +0 -53
  186. package/src/hooks/index.ts +0 -7
  187. package/src/hooks/threads.ts +0 -147
  188. package/src/hooks/useComputeGraph.ts +0 -28
  189. package/src/model/decorations.ts +0 -66
  190. /package/dist/lib/browser/{graph-M4IQ76QX.mjs.map → compute-graph-SJT67236.mjs.map} +0 -0
  191. /package/dist/lib/node-esm/{graph-SMPUMOV2.mjs.map → compute-graph-FRCKXEYK.mjs.map} +0 -0
  192. /package/dist/types/src/{graph → compute-graph}/compute-graph-registry.d.ts +0 -0
  193. /package/dist/types/src/{graph → compute-graph}/compute-graph.stories.d.ts +0 -0
  194. /package/dist/types/src/{graph → compute-graph}/compute-graph.test.d.ts +0 -0
  195. /package/dist/types/src/{graph → compute-graph}/compute-node.d.ts +0 -0
  196. /package/dist/types/src/{graph → compute-graph}/functions/async-function.d.ts +0 -0
  197. /package/dist/types/src/{graph → compute-graph}/functions/edge-function.d.ts +0 -0
  198. /package/dist/types/src/{graph → compute-graph}/functions/function-defs.d.ts +0 -0
  199. /package/dist/types/src/{graph → compute-graph}/functions/index.d.ts +0 -0
  200. /package/dist/types/src/{graph → compute-graph}/hyperformula.test.d.ts +0 -0
  201. /package/dist/types/src/{graph → compute-graph}/index.d.ts +0 -0
  202. /package/dist/types/src/{graph → compute-graph}/testing/index.d.ts +0 -0
  203. /package/dist/types/src/{graph → compute-graph}/testing/test-builder.d.ts +0 -0
  204. /package/dist/types/src/{graph → compute-graph}/testing/test-plugin.d.ts +0 -0
  205. /package/dist/types/src/{graph → compute-graph}/util.d.ts +0 -0
  206. /package/src/{graph → compute-graph}/compute-graph-registry.ts +0 -0
  207. /package/src/{graph → compute-graph}/compute-graph.test.ts +0 -0
  208. /package/src/{graph → compute-graph}/functions/async-function.ts +0 -0
  209. /package/src/{graph → compute-graph}/functions/edge-function.ts +0 -0
  210. /package/src/{graph → compute-graph}/functions/function-defs.ts +0 -0
  211. /package/src/{graph → compute-graph}/functions/index.ts +0 -0
  212. /package/src/{graph → compute-graph}/hyperformula.test.ts +0 -0
  213. /package/src/{graph → compute-graph}/index.ts +0 -0
  214. /package/src/{graph → compute-graph}/testing/index.ts +0 -0
  215. /package/src/{graph → compute-graph}/testing/test-builder.ts +0 -0
  216. /package/src/{graph → compute-graph}/testing/test-plugin.ts +0 -0
  217. /package/src/{graph → compute-graph}/util.ts +0 -0
@@ -18,14 +18,14 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var types_exports = {};
20
20
  __export(types_exports, {
21
- CellValue: () => import_chunk_NZARD7UP.CellValue,
22
- Range: () => import_chunk_NZARD7UP.Range,
23
- RowColumnMeta: () => import_chunk_NZARD7UP.RowColumnMeta,
24
- SheetAction: () => import_chunk_NZARD7UP.SheetAction,
25
- SheetType: () => import_chunk_NZARD7UP.SheetType
21
+ CellValue: () => import_chunk_2XJ5I4UF.CellValue,
22
+ Range: () => import_chunk_2XJ5I4UF.Range,
23
+ RowColumnMeta: () => import_chunk_2XJ5I4UF.RowColumnMeta,
24
+ SheetAction: () => import_chunk_2XJ5I4UF.SheetAction,
25
+ SheetType: () => import_chunk_2XJ5I4UF.SheetType
26
26
  });
27
27
  module.exports = __toCommonJS(types_exports);
28
- var import_chunk_NZARD7UP = require("./chunk-NZARD7UP.cjs");
28
+ var import_chunk_2XJ5I4UF = require("./chunk-2XJ5I4UF.cjs");
29
29
  var import_chunk_QIFIGEKV = require("./chunk-QIFIGEKV.cjs");
30
30
  // Annotate the CommonJS export names for ESM import in node:
31
31
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["types.cjs"],
4
- "sourcesContent": ["import {\n CellValue,\n Range,\n RowColumnMeta,\n SheetAction,\n SheetType\n} from \"./chunk-NZARD7UP.cjs\";\nimport \"./chunk-QIFIGEKV.cjs\";\nexport {\n CellValue,\n Range,\n RowColumnMeta,\n SheetAction,\n SheetType\n};\n//# sourceMappingURL=types.cjs.map\n"],
4
+ "sourcesContent": ["import {\n CellValue,\n Range,\n RowColumnMeta,\n SheetAction,\n SheetType\n} from \"./chunk-2XJ5I4UF.cjs\";\nimport \"./chunk-QIFIGEKV.cjs\";\nexport {\n CellValue,\n Range,\n RowColumnMeta,\n SheetAction,\n SheetType\n};\n//# sourceMappingURL=types.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAMO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -2,17 +2,23 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  GridSheet,
4
4
  SheetProvider,
5
+ completeCellRangeToThreadCursor,
6
+ useComputeGraph,
7
+ useSheetContext
8
+ } from "./chunk-25V7WY4R.mjs";
9
+ import {
5
10
  addressToA1Notation,
6
- addressToIndex,
11
+ alignKey,
7
12
  inRange,
13
+ isFormula,
14
+ rangeFromIndex,
8
15
  rangeToA1Notation,
9
- useSheetContext
10
- } from "./chunk-T3PRH7QS.mjs";
11
- import "./chunk-WFDTY3IC.mjs";
16
+ rangeToIndex
17
+ } from "./chunk-XBEHKYO7.mjs";
18
+ import "./chunk-5TXLF6PL.mjs";
12
19
  import {
13
20
  SHEET_PLUGIN
14
21
  } from "./chunk-VCYJWE3O.mjs";
15
- import "./chunk-5WPZCXNS.mjs";
16
22
 
17
23
  // packages/plugins/plugin-sheet/src/components/SheetContainer/SheetContainer.tsx
18
24
  import React3 from "react";
@@ -24,12 +30,12 @@ import { mx } from "@dxos/react-ui-theme";
24
30
  var FunctionEditor = () => {
25
31
  const { model, cursor, range } = useSheetContext();
26
32
  let value;
27
- let isFormula = false;
33
+ let formula = false;
28
34
  if (cursor) {
29
35
  value = model.getCellValue(cursor);
30
- if (typeof value === "string" && value.charAt(0) === "=") {
36
+ if (isFormula(value)) {
31
37
  value = model.graph.mapFunctionBindingFromId(model.mapFormulaIndicesToRefs(value));
32
- isFormula = true;
38
+ formula = true;
33
39
  } else if (value != null) {
34
40
  value = String(value);
35
41
  }
@@ -46,7 +52,7 @@ var FunctionEditor = () => {
46
52
  icon: "ph--function--regular",
47
53
  classNames: [
48
54
  "text-greenText",
49
- isFormula ? "visible" : "invisible"
55
+ formula ? "visible" : "invisible"
50
56
  ]
51
57
  }), /* @__PURE__ */ React.createElement("span", {
52
58
  className: "font-mono"
@@ -57,7 +63,7 @@ var FunctionEditor = () => {
57
63
  import { createContext } from "@radix-ui/react-context";
58
64
  import React2, { useCallback, useMemo } from "react";
59
65
  import { useIntentDispatcher } from "@dxos/app-framework";
60
- import { Icon as Icon2, Toolbar as NaturalToolbar, useTranslation, Tooltip } from "@dxos/react-ui";
66
+ import { Icon as Icon2, Toolbar as NaturalToolbar, Tooltip, useTranslation } from "@dxos/react-ui";
61
67
  import { useAttention } from "@dxos/react-ui-attention";
62
68
  import { nonNullable } from "@dxos/util";
63
69
  var buttonStyles = "min-bs-0 p-2";
@@ -87,23 +93,16 @@ var ToolbarItem = ({ itemType, icon, children, ...props }) => {
87
93
  var [ToolbarContextProvider, useToolbarContext] = createContext("Toolbar");
88
94
  var sectionToolbarLayout = "bs-[--rail-action] bg-[--sticky-bg] sticky block-start-0 __-block-start-px transition-opacity";
89
95
  var ToolbarRoot = ({ children, role, classNames }) => {
90
- const { id, model, range, cursor } = useSheetContext();
96
+ const { id, model, cursorFallbackRange, cursor } = useSheetContext();
91
97
  const { hasAttention } = useAttention(id);
92
98
  const dispatch = useIntentDispatcher();
93
99
  const handleAction = useCallback((action) => {
94
100
  switch (action.key) {
95
- case "align":
96
- if (cursor) {
97
- const index = model.sheet.ranges?.findIndex((range2) => range2.key === action.key && inRange(range2.range, cursor));
98
- const nextRange = range ? {
99
- from: range.from,
100
- to: range.to ?? range.from
101
- } : {
102
- from: cursor,
103
- to: cursor
104
- };
101
+ case "alignment":
102
+ if (cursor && cursorFallbackRange) {
103
+ const index = model.sheet.ranges?.findIndex((range) => range.key === action.key && inRange(rangeFromIndex(model.sheet, range.range), cursor));
105
104
  const nextRangeEntity = {
106
- range: nextRange,
105
+ range: rangeToIndex(model.sheet, cursorFallbackRange),
107
106
  key: action.key,
108
107
  value: action.value
109
108
  };
@@ -116,39 +115,34 @@ var ToolbarRoot = ({ children, role, classNames }) => {
116
115
  break;
117
116
  case "style":
118
117
  if (action.value === "unset") {
119
- const index = model.sheet.ranges?.findIndex((range2) => range2.key === action.key);
118
+ const index = model.sheet.ranges?.findIndex((range) => range.key === action.key);
120
119
  if (index >= 0) {
121
120
  model.sheet.ranges?.splice(index, 1);
122
121
  }
123
- } else if (range || cursor) {
124
- const nextRange = range ? {
125
- from: range.from,
126
- to: range.to ?? range.from
127
- } : {
128
- from: cursor,
129
- to: cursor
130
- };
122
+ } else if (cursorFallbackRange) {
131
123
  model.sheet.ranges?.push({
132
- range: nextRange,
124
+ range: rangeToIndex(model.sheet, cursorFallbackRange),
133
125
  key: action.key,
134
126
  value: action.value
135
127
  });
136
128
  }
137
129
  break;
138
130
  case "comment": {
139
- void dispatch({
140
- action: "dxos.org/plugin/thread/action/create",
141
- data: {
142
- cursor: action.value,
143
- name: action.cellContent,
144
- subject: model.sheet
145
- }
146
- });
131
+ if (cursorFallbackRange) {
132
+ void dispatch({
133
+ action: "dxos.org/plugin/thread/action/create",
134
+ data: {
135
+ cursor: completeCellRangeToThreadCursor(cursorFallbackRange),
136
+ name: action.cellContent,
137
+ subject: model.sheet
138
+ }
139
+ });
140
+ }
147
141
  }
148
142
  }
149
143
  }, [
150
144
  model.sheet,
151
- range,
145
+ cursorFallbackRange,
152
146
  cursor,
153
147
  dispatch
154
148
  ]);
@@ -185,7 +179,7 @@ var Alignment = () => {
185
179
  const { cursor, model } = useSheetContext();
186
180
  const { onAction } = useToolbarContext("Alignment");
187
181
  const { t } = useTranslation(SHEET_PLUGIN);
188
- const value = useMemo(() => cursor ? model.sheet.ranges?.find(({ range, key }) => key === "alignment" && inRange(range, cursor))?.value : void 0, [
182
+ const value = useMemo(() => cursor ? model.sheet.ranges?.find(({ range, key }) => key === alignKey && inRange(rangeFromIndex(model.sheet, range), cursor))?.value : void 0, [
189
183
  cursor,
190
184
  model.sheet.ranges
191
185
  ]);
@@ -193,7 +187,7 @@ var Alignment = () => {
193
187
  type: "single",
194
188
  value,
195
189
  onValueChange: (value2) => onAction?.({
196
- key: "align",
190
+ key: alignKey,
197
191
  value: value2
198
192
  })
199
193
  }, alignmentOptions.map(({ value: value2, icon }) => /* @__PURE__ */ React2.createElement(ToolbarItem, {
@@ -201,7 +195,10 @@ var Alignment = () => {
201
195
  key: value2,
202
196
  value: value2,
203
197
  icon
204
- }, t(`toolbar ${value2} label`))));
198
+ }, t("toolbar action label", {
199
+ key: t(`range key ${alignKey} label`),
200
+ value: t(`range value ${value2} label`)
201
+ }))));
205
202
  };
206
203
  var styleOptions = [
207
204
  {
@@ -213,7 +210,7 @@ var Styles = () => {
213
210
  const { cursor, model } = useSheetContext();
214
211
  const { onAction } = useToolbarContext("Styles");
215
212
  const { t } = useTranslation(SHEET_PLUGIN);
216
- const activeValues = useMemo(() => cursor ? model.sheet.ranges?.filter(({ range, key }) => key === "style" && inRange(range, cursor)).reduce((acc, { value }) => {
213
+ const activeValues = useMemo(() => cursor ? model.sheet.ranges?.filter(({ range, key }) => key === "style" && inRange(rangeFromIndex(model.sheet, range), cursor)).reduce((acc, { value }) => {
217
214
  acc.add(value);
218
215
  return acc;
219
216
  }, /* @__PURE__ */ new Set()) : void 0, [
@@ -233,33 +230,31 @@ var Styles = () => {
233
230
  };
234
231
  var Actions = () => {
235
232
  const { onAction } = useToolbarContext("Actions");
236
- const { cursor, range, model } = useSheetContext();
233
+ const { cursorFallbackRange, cursor, model } = useSheetContext();
237
234
  const { t } = useTranslation(SHEET_PLUGIN);
238
235
  const overlapsCommentAnchor = (model.sheet.threads ?? []).filter(nonNullable).filter((thread) => thread.status !== "resolved").some((thread) => {
239
- if (!cursor) {
236
+ if (!cursorFallbackRange) {
240
237
  return false;
241
238
  }
242
- return addressToIndex(model.sheet, cursor) === thread.anchor;
239
+ return rangeToIndex(model.sheet, cursorFallbackRange) === thread.anchor;
243
240
  });
244
- const hasCursor = !!cursor;
245
- const cursorOnly = hasCursor && !range && !overlapsCommentAnchor;
246
- const tooltipLabelKey = !hasCursor ? "no cursor label" : overlapsCommentAnchor ? "selection overlaps existing comment label" : range ? "comment ranges not supported label" : "comment label";
241
+ const tooltipLabelKey = !cursor ? "no cursor label" : overlapsCommentAnchor ? "selection overlaps existing comment label" : "comment label";
247
242
  return /* @__PURE__ */ React2.createElement(ToolbarItem, {
248
243
  itemType: "button",
249
244
  value: "comment",
250
245
  icon: "ph--chat-text--regular",
251
246
  "data-testid": "editor.toolbar.comment",
252
247
  onClick: () => {
253
- if (!cursor) {
248
+ if (!(cursorFallbackRange && cursor)) {
254
249
  return;
255
250
  }
256
251
  return onAction?.({
257
252
  key: "comment",
258
- value: addressToIndex(model.sheet, cursor),
253
+ value: rangeToIndex(model.sheet, cursorFallbackRange),
259
254
  cellContent: model.getCellText(cursor)
260
255
  });
261
256
  },
262
- disabled: !cursorOnly || overlapsCommentAnchor
257
+ disabled: !cursor || overlapsCommentAnchor
263
258
  }, t(tooltipLabelKey));
264
259
  };
265
260
  var Toolbar = {
@@ -271,8 +266,9 @@ var Toolbar = {
271
266
  };
272
267
 
273
268
  // packages/plugins/plugin-sheet/src/components/SheetContainer/SheetContainer.tsx
274
- var SheetContainer = ({ graph, sheet, role }) => {
275
- return /* @__PURE__ */ React3.createElement(SheetProvider, {
269
+ var SheetContainer = ({ space, sheet, role }) => {
270
+ const graph = useComputeGraph(space);
271
+ return graph ? /* @__PURE__ */ React3.createElement(SheetProvider, {
276
272
  sheet,
277
273
  graph
278
274
  }, /* @__PURE__ */ React3.createElement(Toolbar.Root, {
@@ -280,7 +276,7 @@ var SheetContainer = ({ graph, sheet, role }) => {
280
276
  }, /* @__PURE__ */ React3.createElement(Toolbar.Styles, null), /* @__PURE__ */ React3.createElement(Toolbar.Alignment, null), /* @__PURE__ */ React3.createElement(Toolbar.Separator, null), /* @__PURE__ */ React3.createElement(Toolbar.Actions, null)), /* @__PURE__ */ React3.createElement("div", {
281
277
  role: "none",
282
278
  className: "border-bs border-separator grid cols-1 rows-[1fr_min-content] min-bs-0"
283
- }, /* @__PURE__ */ React3.createElement(GridSheet, null), /* @__PURE__ */ React3.createElement(FunctionEditor, null)));
279
+ }, /* @__PURE__ */ React3.createElement(GridSheet, null), /* @__PURE__ */ React3.createElement(FunctionEditor, null))) : null;
284
280
  };
285
281
 
286
282
  // packages/plugins/plugin-sheet/src/components/SheetContainer/index.ts
@@ -288,4 +284,4 @@ var SheetContainer_default = SheetContainer;
288
284
  export {
289
285
  SheetContainer_default as default
290
286
  };
291
- //# sourceMappingURL=SheetContainer-46PBMF2E.mjs.map
287
+ //# sourceMappingURL=SheetContainer-MJXC5E3P.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/SheetContainer/SheetContainer.tsx", "../../../src/components/FunctionEditor/FunctionEditor.tsx", "../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/SheetContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Space } from '@dxos/react-client/echo';\n\nimport { type SheetType } from '../../types';\nimport { useComputeGraph } from '../ComputeGraph';\nimport { FunctionEditor } from '../FunctionEditor';\nimport { GridSheet } from '../GridSheet';\nimport { SheetProvider } from '../SheetContext';\nimport { Toolbar } from '../Toolbar';\n\nexport const SheetContainer = ({ space, sheet, role }: { space: Space; sheet: SheetType; role?: string }) => {\n const graph = useComputeGraph(space);\n\n return graph ? (\n <SheetProvider sheet={sheet} graph={graph}>\n <Toolbar.Root role={role}>\n <Toolbar.Styles />\n <Toolbar.Alignment />\n <Toolbar.Separator />\n <Toolbar.Actions />\n </Toolbar.Root>\n <div role='none' className='border-bs border-separator grid cols-1 rows-[1fr_min-content] min-bs-0'>\n <GridSheet />\n <FunctionEditor />\n </div>\n </SheetProvider>\n ) : null;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Icon } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { addressToA1Notation, isFormula, rangeToA1Notation } from '../../defs';\nimport { useSheetContext } from '../SheetContext';\n\nexport const FunctionEditor = () => {\n const { model, cursor, range } = useSheetContext();\n\n let value;\n let formula = false;\n if (cursor) {\n value = model.getCellValue(cursor);\n if (isFormula(value)) {\n value = model.graph.mapFunctionBindingFromId(model.mapFormulaIndicesToRefs(value));\n formula = true;\n } else if (value != null) {\n value = String(value);\n }\n }\n\n return (\n <div\n className={mx(\n 'flex shrink-0 justify-between items-center px-4 py-1 text-sm border-bs !border-separator attention-surface',\n )}\n >\n <div className='flex gap-4 items-center'>\n <div className='flex w-16 items-center font-mono'>\n {(range && rangeToA1Notation(range)) || (cursor && addressToA1Notation(cursor))}\n </div>\n <div className='flex gap-2 items-center'>\n <Icon icon='ph--function--regular' classNames={['text-greenText', formula ? 'visible' : 'invisible']} />\n <span className='font-mono'>{value}</span>\n </div>\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport React, { type PropsWithChildren, useCallback, useMemo } from 'react';\n\nimport { useIntentDispatcher } from '@dxos/app-framework';\nimport {\n Icon,\n type ThemedClassName,\n Toolbar as NaturalToolbar,\n type ToolbarButtonProps as NaturalToolbarButtonProps,\n type ToolbarToggleGroupItemProps as NaturalToolbarToggleGroupItemProps,\n type ToolbarToggleProps as NaturalToolbarToggleProps,\n Tooltip,\n useTranslation,\n} from '@dxos/react-ui';\nimport { useAttention } from '@dxos/react-ui-attention';\nimport { nonNullable } from '@dxos/util';\n\nimport {\n alignKey,\n type AlignKey,\n type AlignValue,\n type CommentKey,\n type CommentValue,\n inRange,\n rangeFromIndex,\n rangeToIndex,\n type StyleKey,\n type StyleValue,\n} from '../../defs';\nimport { completeCellRangeToThreadCursor } from '../../integrations';\nimport { SHEET_PLUGIN } from '../../meta';\nimport { type SheetType } from '../../types';\nimport { useSheetContext } from '../SheetContext';\n\n//\n// Buttons\n//\n\nconst buttonStyles = 'min-bs-0 p-2';\nconst tooltipProps = { side: 'bottom' as const, classNames: 'z-10' };\n\nconst ToolbarSeparator = () => <div role='separator' className='grow' />;\n\n//\n// ToolbarItem\n//\n\ntype ToolbarItemProps =\n | (NaturalToolbarButtonProps & { itemType: 'button'; icon: string })\n | (NaturalToolbarToggleGroupItemProps & { itemType: 'toggleGroupItem'; icon: string })\n | (NaturalToolbarToggleProps & { itemType: 'toggle'; icon: string });\n\nexport const ToolbarItem = ({ itemType, icon, children, ...props }: ToolbarItemProps) => {\n const Invoker =\n itemType === 'toggleGroupItem'\n ? NaturalToolbar.ToggleGroupItem\n : itemType === 'toggle'\n ? NaturalToolbar.Toggle\n : NaturalToolbar.Button;\n return (\n <Tooltip.Root>\n <Tooltip.Trigger asChild>\n {/* TODO(thure): type the props spread better. */}\n <Invoker variant='ghost' {...(props as any)} classNames={buttonStyles}>\n <Icon icon={icon} size={5} />\n <span className='sr-only'>{children}</span>\n </Invoker>\n </Tooltip.Trigger>\n <Tooltip.Portal>\n <Tooltip.Content {...tooltipProps}>\n {children}\n <Tooltip.Arrow />\n </Tooltip.Content>\n </Tooltip.Portal>\n </Tooltip.Root>\n );\n};\n\n//\n// Root\n//\n\ntype AlignAction = { key: AlignKey; value: AlignValue };\ntype CommentAction = { key: CommentKey; value: CommentValue; cellContent?: string };\ntype StyleAction = { key: StyleKey; value: StyleValue };\n\nexport type ToolbarAction = StyleAction | AlignAction | CommentAction;\n\nexport type ToolbarActionType = ToolbarAction['key'];\n\nexport type ToolbarActionHandler = (action: ToolbarAction) => void;\n\nexport type ToolbarProps = ThemedClassName<\n PropsWithChildren<{\n role?: string;\n }>\n>;\n\nconst [ToolbarContextProvider, useToolbarContext] = createContext<{ onAction: (action: ToolbarAction) => void }>(\n 'Toolbar',\n);\n\n// TODO(Zan): Factor out, copied this from MarkdownPlugin.\nconst sectionToolbarLayout =\n 'bs-[--rail-action] bg-[--sticky-bg] sticky block-start-0 __-block-start-px transition-opacity';\n\ntype Range = SheetType['ranges'][number];\n\nconst ToolbarRoot = ({ children, role, classNames }: ToolbarProps) => {\n const { id, model, cursorFallbackRange, cursor } = useSheetContext();\n const { hasAttention } = useAttention(id);\n const dispatch = useIntentDispatcher();\n\n // TODO(Zan): Externalize the toolbar action handler. E.g., Toolbar/keys should both fire events.\n const handleAction = useCallback(\n (action: ToolbarAction) => {\n switch (action.key) {\n case 'alignment':\n if (cursor && cursorFallbackRange) {\n const index = model.sheet.ranges?.findIndex(\n (range) => range.key === action.key && inRange(rangeFromIndex(model.sheet, range.range), cursor),\n );\n const nextRangeEntity = {\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: action.key,\n value: action.value,\n };\n if (index < 0) {\n model.sheet.ranges?.push(nextRangeEntity);\n } else {\n model.sheet.ranges?.splice(index, 1, nextRangeEntity);\n }\n }\n break;\n case 'style':\n if (action.value === 'unset') {\n const index = model.sheet.ranges?.findIndex((range) => range.key === action.key);\n if (index >= 0) {\n model.sheet.ranges?.splice(index, 1);\n }\n } else if (cursorFallbackRange) {\n model.sheet.ranges?.push({\n range: rangeToIndex(model.sheet, cursorFallbackRange),\n key: action.key,\n value: action.value,\n });\n }\n break;\n case 'comment': {\n // TODO(Zan): We shouldn't hardcode the action ID.\n if (cursorFallbackRange) {\n void dispatch({\n action: 'dxos.org/plugin/thread/action/create',\n data: {\n cursor: completeCellRangeToThreadCursor(cursorFallbackRange),\n name: action.cellContent,\n subject: model.sheet,\n },\n });\n }\n }\n }\n },\n [model.sheet, cursorFallbackRange, cursor, dispatch],\n );\n\n return (\n <ToolbarContextProvider onAction={handleAction}>\n <NaturalToolbar.Root\n classNames={[\n ...(role === 'section'\n ? ['z-[2] group-focus-within/section:visible', !hasAttention && 'invisible', sectionToolbarLayout]\n : ['attention-surface']),\n classNames,\n ]}\n >\n {children}\n </NaturalToolbar.Root>\n </ToolbarContextProvider>\n );\n};\n\n// TODO(burdon): Generalize.\n// TODO(burdon): Detect and display current state.\ntype ButtonProps<T> = {\n value: T;\n icon: string;\n disabled?: (state: Range) => boolean;\n};\n\n//\n// Alignment\n//\n\nconst alignmentOptions: ButtonProps<AlignValue>[] = [\n { value: 'start', icon: 'ph--text-align-left--regular' },\n { value: 'center', icon: 'ph--text-align-center--regular' },\n { value: 'end', icon: 'ph--text-align-right--regular' },\n];\n\nconst Alignment = () => {\n const { cursor, model } = useSheetContext();\n const { onAction } = useToolbarContext('Alignment');\n const { t } = useTranslation(SHEET_PLUGIN);\n\n const value = useMemo(\n () =>\n cursor\n ? model.sheet.ranges?.find(\n ({ range, key }) => key === alignKey && inRange(rangeFromIndex(model.sheet, range), cursor),\n )?.value\n : undefined,\n [cursor, model.sheet.ranges],\n );\n\n return (\n <NaturalToolbar.ToggleGroup\n type='single'\n value={value}\n onValueChange={(value: AlignValue) => onAction?.({ key: alignKey, value })}\n >\n {alignmentOptions.map(({ value, icon }) => (\n <ToolbarItem itemType='toggleGroupItem' key={value} value={value} icon={icon}>\n {t('toolbar action label', {\n key: t(`range key ${alignKey} label`),\n value: t(`range value ${value} label`),\n })}\n </ToolbarItem>\n ))}\n </NaturalToolbar.ToggleGroup>\n );\n};\n\nconst styleOptions: ButtonProps<StyleValue>[] = [{ value: 'highlight', icon: 'ph--highlighter--regular' }];\n\nconst Styles = () => {\n const { cursor, model } = useSheetContext();\n const { onAction } = useToolbarContext('Styles');\n const { t } = useTranslation(SHEET_PLUGIN);\n\n const activeValues = useMemo(\n () =>\n cursor\n ? model.sheet.ranges\n ?.filter(({ range, key }) => key === 'style' && inRange(rangeFromIndex(model.sheet, range), cursor))\n .reduce((acc, { value }) => {\n acc.add(value);\n return acc;\n }, new Set())\n : undefined,\n [cursor, model.sheet.ranges],\n );\n\n return (\n <>\n {styleOptions.map(({ value, icon }) => (\n <ToolbarItem\n itemType='toggle'\n key={value}\n pressed={activeValues?.has(value)}\n onPressedChange={(nextPressed: boolean) => onAction?.({ key: 'style', value: nextPressed ? value : 'unset' })}\n icon={icon}\n >\n {t(`toolbar ${value} label`)}\n </ToolbarItem>\n ))}\n </>\n );\n};\n\n//\n// Actions\n//\n\nconst Actions = () => {\n const { onAction } = useToolbarContext('Actions');\n const { cursorFallbackRange, cursor, model } = useSheetContext();\n const { t } = useTranslation(SHEET_PLUGIN);\n\n const overlapsCommentAnchor = (model.sheet.threads ?? [])\n .filter(nonNullable)\n .filter((thread) => thread.status !== 'resolved')\n .some((thread) => {\n if (!cursorFallbackRange) {\n return false;\n }\n return rangeToIndex(model.sheet, cursorFallbackRange) === thread.anchor;\n });\n\n const tooltipLabelKey = !cursor\n ? 'no cursor label'\n : overlapsCommentAnchor\n ? 'selection overlaps existing comment label'\n : 'comment label';\n\n return (\n <ToolbarItem\n itemType='button'\n value='comment'\n icon='ph--chat-text--regular'\n data-testid='editor.toolbar.comment'\n onClick={() => {\n if (!(cursorFallbackRange && cursor)) {\n return;\n }\n return onAction?.({\n key: 'comment',\n value: rangeToIndex(model.sheet, cursorFallbackRange),\n cellContent: model.getCellText(cursor),\n });\n }}\n disabled={!cursor || overlapsCommentAnchor}\n >\n {t(tooltipLabelKey)}\n </ToolbarItem>\n );\n};\n\nexport const Toolbar = {\n Root: ToolbarRoot,\n Separator: ToolbarSeparator,\n Alignment,\n Styles,\n Actions,\n};\n\nexport { useToolbarContext };\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SheetContainer } from './SheetContainer';\n\nexport default SheetContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "React", "Icon", "mx", "FunctionEditor", "model", "cursor", "range", "useSheetContext", "value", "formula", "getCellValue", "isFormula", "graph", "mapFunctionBindingFromId", "mapFormulaIndicesToRefs", "String", "div", "className", "mx", "rangeToA1Notation", "addressToA1Notation", "Icon", "icon", "classNames", "span", "createContext", "React", "useCallback", "useMemo", "useIntentDispatcher", "Icon", "Toolbar", "NaturalToolbar", "Tooltip", "useTranslation", "useAttention", "nonNullable", "buttonStyles", "tooltipProps", "side", "classNames", "ToolbarSeparator", "React", "div", "role", "className", "ToolbarItem", "itemType", "icon", "children", "props", "Invoker", "NaturalToolbar", "ToggleGroupItem", "Toggle", "Button", "Tooltip", "Root", "Trigger", "asChild", "variant", "Icon", "size", "span", "Portal", "Content", "Arrow", "ToolbarContextProvider", "useToolbarContext", "createContext", "sectionToolbarLayout", "ToolbarRoot", "id", "model", "cursorFallbackRange", "cursor", "useSheetContext", "hasAttention", "useAttention", "dispatch", "useIntentDispatcher", "handleAction", "useCallback", "action", "key", "index", "sheet", "ranges", "findIndex", "range", "inRange", "rangeFromIndex", "nextRangeEntity", "rangeToIndex", "value", "push", "splice", "data", "completeCellRangeToThreadCursor", "name", "cellContent", "subject", "onAction", "alignmentOptions", "Alignment", "t", "useTranslation", "SHEET_PLUGIN", "useMemo", "find", "alignKey", "undefined", "ToggleGroup", "type", "onValueChange", "map", "styleOptions", "Styles", "activeValues", "filter", "reduce", "acc", "add", "Set", "pressed", "has", "onPressedChange", "nextPressed", "Actions", "overlapsCommentAnchor", "threads", "nonNullable", "thread", "status", "some", "anchor", "tooltipLabelKey", "data-testid", "onClick", "getCellText", "disabled", "Toolbar", "Separator", "SheetContainer", "space", "sheet", "role", "graph", "useComputeGraph", "React", "SheetProvider", "Toolbar", "Root", "Styles", "Alignment", "Separator", "Actions", "div", "className", "GridSheet", "FunctionEditor", "SheetContainer"]
7
+ }