@elaraai/e3-ui 1.0.85 → 1.0.87

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 (385) hide show
  1. package/dist/src/bind/data-indexed.d.ts +159 -0
  2. package/dist/src/bind/data-indexed.d.ts.map +1 -0
  3. package/dist/src/bind/data-indexed.js +105 -0
  4. package/dist/src/bind/data-indexed.js.map +1 -0
  5. package/dist/src/bind/data.d.ts +5 -3
  6. package/dist/src/bind/data.d.ts.map +1 -1
  7. package/dist/src/bind/data.js +6 -0
  8. package/dist/src/bind/data.js.map +1 -1
  9. package/dist/src/bind/record.d.ts +34 -23
  10. package/dist/src/bind/record.d.ts.map +1 -1
  11. package/dist/src/bind/record.js +46 -19
  12. package/dist/src/bind/record.js.map +1 -1
  13. package/dist/src/calendar/index.d.ts +2923 -0
  14. package/dist/src/calendar/index.d.ts.map +1 -0
  15. package/dist/src/calendar/index.js +135 -0
  16. package/dist/src/calendar/index.js.map +1 -0
  17. package/dist/src/decision/queue.d.ts +3 -3
  18. package/dist/src/decision/queue.d.ts.map +1 -1
  19. package/dist/src/decision/queue.js +2 -2
  20. package/dist/src/decision/queue.js.map +1 -1
  21. package/dist/src/decision/types.d.ts +4 -0
  22. package/dist/src/decision/types.d.ts.map +1 -1
  23. package/dist/src/decision/types.js +4 -0
  24. package/dist/src/decision/types.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +114 -0
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -0
  27. package/dist/src/flowchart/canvas.js +84 -0
  28. package/dist/src/flowchart/canvas.js.map +1 -0
  29. package/dist/src/flowchart/flowchart.d.ts +79 -0
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -0
  31. package/dist/src/flowchart/flowchart.js +9 -0
  32. package/dist/src/flowchart/flowchart.js.map +1 -0
  33. package/dist/src/flowchart/index.d.ts +305 -0
  34. package/dist/src/flowchart/index.d.ts.map +1 -0
  35. package/dist/src/flowchart/index.js +267 -0
  36. package/dist/src/flowchart/index.js.map +1 -0
  37. package/dist/src/flowchart/library.d.ts +720 -0
  38. package/dist/src/flowchart/library.d.ts.map +1 -0
  39. package/dist/src/flowchart/library.js +611 -0
  40. package/dist/src/flowchart/library.js.map +1 -0
  41. package/dist/src/flowchart/over.d.ts +234 -0
  42. package/dist/src/flowchart/over.d.ts.map +1 -0
  43. package/dist/src/flowchart/over.js +220 -0
  44. package/dist/src/flowchart/over.js.map +1 -0
  45. package/dist/src/flowchart/patch.d.ts +64 -0
  46. package/dist/src/flowchart/patch.d.ts.map +1 -0
  47. package/dist/src/flowchart/patch.js +67 -0
  48. package/dist/src/flowchart/patch.js.map +1 -0
  49. package/dist/src/flowchart/payload.d.ts +8220 -0
  50. package/dist/src/flowchart/payload.d.ts.map +1 -0
  51. package/dist/src/flowchart/payload.js +521 -0
  52. package/dist/src/flowchart/payload.js.map +1 -0
  53. package/dist/src/flowchart/types.d.ts +393 -0
  54. package/dist/src/flowchart/types.d.ts.map +1 -0
  55. package/dist/src/flowchart/types.js +216 -0
  56. package/dist/src/flowchart/types.js.map +1 -0
  57. package/dist/src/flowchart/values.d.ts +267 -0
  58. package/dist/src/flowchart/values.d.ts.map +1 -0
  59. package/dist/src/flowchart/values.js +216 -0
  60. package/dist/src/flowchart/values.js.map +1 -0
  61. package/dist/src/flowchart/window.d.ts +521 -0
  62. package/dist/src/flowchart/window.d.ts.map +1 -0
  63. package/dist/src/flowchart/window.js +69 -0
  64. package/dist/src/flowchart/window.js.map +1 -0
  65. package/dist/src/index.d.ts +25 -1
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +48 -1
  68. package/dist/src/index.js.map +1 -1
  69. package/dist/src/internal.d.ts +35 -3
  70. package/dist/src/internal.d.ts.map +1 -1
  71. package/dist/src/internal.js +72 -3
  72. package/dist/src/internal.js.map +1 -1
  73. package/dist/src/plan/assemble.d.ts +2224 -0
  74. package/dist/src/plan/assemble.d.ts.map +1 -0
  75. package/dist/src/plan/assemble.js +210 -0
  76. package/dist/src/plan/assemble.js.map +1 -0
  77. package/dist/src/plan/builders.d.ts +790 -0
  78. package/dist/src/plan/builders.d.ts.map +1 -0
  79. package/dist/src/plan/builders.js +749 -0
  80. package/dist/src/plan/builders.js.map +1 -0
  81. package/dist/src/plan/event-rows.d.ts +2565 -0
  82. package/dist/src/plan/event-rows.d.ts.map +1 -0
  83. package/dist/src/plan/event-rows.js +689 -0
  84. package/dist/src/plan/event-rows.js.map +1 -0
  85. package/dist/src/plan/factories.d.ts +458 -0
  86. package/dist/src/plan/factories.d.ts.map +1 -0
  87. package/dist/src/plan/factories.js +484 -0
  88. package/dist/src/plan/factories.js.map +1 -0
  89. package/dist/src/plan/index.d.ts +672 -0
  90. package/dist/src/plan/index.d.ts.map +1 -0
  91. package/dist/src/plan/index.js +532 -0
  92. package/dist/src/plan/index.js.map +1 -0
  93. package/dist/src/plan/ir.d.ts +2594 -0
  94. package/dist/src/plan/ir.d.ts.map +1 -0
  95. package/dist/src/plan/ir.js +78 -0
  96. package/dist/src/plan/ir.js.map +1 -0
  97. package/dist/src/plan/library.d.ts +772 -0
  98. package/dist/src/plan/library.d.ts.map +1 -0
  99. package/dist/src/plan/library.js +424 -0
  100. package/dist/src/plan/library.js.map +1 -0
  101. package/dist/src/plan/ordered-source.d.ts +27 -0
  102. package/dist/src/plan/ordered-source.d.ts.map +1 -0
  103. package/dist/src/plan/ordered-source.js +48 -0
  104. package/dist/src/plan/ordered-source.js.map +1 -0
  105. package/dist/src/plan/over.d.ts +247 -0
  106. package/dist/src/plan/over.d.ts.map +1 -0
  107. package/dist/src/plan/over.js +266 -0
  108. package/dist/src/plan/over.js.map +1 -0
  109. package/dist/src/plan/pick.d.ts +78 -0
  110. package/dist/src/plan/pick.d.ts.map +1 -0
  111. package/dist/src/plan/pick.js +146 -0
  112. package/dist/src/plan/pick.js.map +1 -0
  113. package/dist/src/plan/plan.d.ts +11611 -0
  114. package/dist/src/plan/plan.d.ts.map +1 -0
  115. package/dist/src/plan/plan.js +428 -0
  116. package/dist/src/plan/plan.js.map +1 -0
  117. package/dist/src/plan/refs.d.ts +218 -0
  118. package/dist/src/plan/refs.d.ts.map +1 -0
  119. package/dist/src/plan/refs.js +226 -0
  120. package/dist/src/plan/refs.js.map +1 -0
  121. package/dist/src/plan/root.d.ts +290 -0
  122. package/dist/src/plan/root.d.ts.map +1 -0
  123. package/dist/src/plan/root.js +463 -0
  124. package/dist/src/plan/root.js.map +1 -0
  125. package/dist/src/plan/series.d.ts +13554 -0
  126. package/dist/src/plan/series.d.ts.map +1 -0
  127. package/dist/src/plan/series.js +1921 -0
  128. package/dist/src/plan/series.js.map +1 -0
  129. package/dist/src/plan/types.d.ts +12400 -0
  130. package/dist/src/plan/types.d.ts.map +1 -0
  131. package/dist/src/plan/types.js +1335 -0
  132. package/dist/src/plan/types.js.map +1 -0
  133. package/dist/src/roster/coverage.d.ts +240 -0
  134. package/dist/src/roster/coverage.d.ts.map +1 -0
  135. package/dist/src/roster/coverage.js +109 -0
  136. package/dist/src/roster/coverage.js.map +1 -0
  137. package/dist/src/roster/index.d.ts +4028 -0
  138. package/dist/src/roster/index.d.ts.map +1 -0
  139. package/dist/src/roster/index.js +115 -0
  140. package/dist/src/roster/index.js.map +1 -0
  141. package/dist/src/roster/library.d.ts +106 -0
  142. package/dist/src/roster/library.d.ts.map +1 -0
  143. package/dist/src/roster/library.js +78 -0
  144. package/dist/src/roster/library.js.map +1 -0
  145. package/dist/src/roster/people.d.ts +50 -0
  146. package/dist/src/roster/people.d.ts.map +1 -0
  147. package/dist/src/roster/people.js +32 -0
  148. package/dist/src/roster/people.js.map +1 -0
  149. package/dist/src/roster/rules.d.ts +275 -0
  150. package/dist/src/roster/rules.d.ts.map +1 -0
  151. package/dist/src/roster/rules.js +162 -0
  152. package/dist/src/roster/rules.js.map +1 -0
  153. package/dist/src/roster/types.d.ts +672 -0
  154. package/dist/src/roster/types.d.ts.map +1 -0
  155. package/dist/src/roster/types.js +248 -0
  156. package/dist/src/roster/types.js.map +1 -0
  157. package/dist/src/roster/visibility.d.ts +66 -0
  158. package/dist/src/roster/visibility.d.ts.map +1 -0
  159. package/dist/src/roster/visibility.js +25 -0
  160. package/dist/src/roster/visibility.js.map +1 -0
  161. package/dist/src/schedule/days.d.ts +54 -0
  162. package/dist/src/schedule/days.d.ts.map +1 -0
  163. package/dist/src/schedule/days.js +68 -0
  164. package/dist/src/schedule/days.js.map +1 -0
  165. package/dist/src/schedule/events.d.ts +433 -0
  166. package/dist/src/schedule/events.d.ts.map +1 -0
  167. package/dist/src/schedule/events.js +851 -0
  168. package/dist/src/schedule/events.js.map +1 -0
  169. package/dist/src/schedule/index.d.ts +150 -0
  170. package/dist/src/schedule/index.d.ts.map +1 -0
  171. package/dist/src/schedule/index.js +132 -0
  172. package/dist/src/schedule/index.js.map +1 -0
  173. package/dist/src/schedule/library.d.ts +70 -0
  174. package/dist/src/schedule/library.d.ts.map +1 -0
  175. package/dist/src/schedule/library.js +102 -0
  176. package/dist/src/schedule/library.js.map +1 -0
  177. package/dist/src/schedule/patch.d.ts +74 -0
  178. package/dist/src/schedule/patch.d.ts.map +1 -0
  179. package/dist/src/schedule/patch.js +68 -0
  180. package/dist/src/schedule/patch.js.map +1 -0
  181. package/dist/src/schedule/record-window.d.ts +189 -0
  182. package/dist/src/schedule/record-window.d.ts.map +1 -0
  183. package/dist/src/schedule/record-window.js +95 -0
  184. package/dist/src/schedule/record-window.js.map +1 -0
  185. package/dist/src/schedule/resources.d.ts +165 -0
  186. package/dist/src/schedule/resources.d.ts.map +1 -0
  187. package/dist/src/schedule/resources.js +234 -0
  188. package/dist/src/schedule/resources.js.map +1 -0
  189. package/dist/src/schedule/templates.d.ts +47 -0
  190. package/dist/src/schedule/templates.d.ts.map +1 -0
  191. package/dist/src/schedule/templates.js +61 -0
  192. package/dist/src/schedule/templates.js.map +1 -0
  193. package/dist/src/schedule/types.d.ts +1677 -0
  194. package/dist/src/schedule/types.d.ts.map +1 -0
  195. package/dist/src/schedule/types.js +374 -0
  196. package/dist/src/schedule/types.js.map +1 -0
  197. package/dist/src/schedule/window.d.ts +154 -0
  198. package/dist/src/schedule/window.d.ts.map +1 -0
  199. package/dist/src/schedule/window.js +363 -0
  200. package/dist/src/schedule/window.js.map +1 -0
  201. package/dist/src/sheet/bridge.d.ts +385 -0
  202. package/dist/src/sheet/bridge.d.ts.map +1 -0
  203. package/dist/src/sheet/bridge.js +809 -0
  204. package/dist/src/sheet/bridge.js.map +1 -0
  205. package/dist/src/sheet/columns.d.ts +410 -0
  206. package/dist/src/sheet/columns.d.ts.map +1 -0
  207. package/dist/src/sheet/columns.js +99 -0
  208. package/dist/src/sheet/columns.js.map +1 -0
  209. package/dist/src/sheet/context-bridge.d.ts +48 -0
  210. package/dist/src/sheet/context-bridge.d.ts.map +1 -0
  211. package/dist/src/sheet/context-bridge.js +216 -0
  212. package/dist/src/sheet/context-bridge.js.map +1 -0
  213. package/dist/src/sheet/draft-bridge.d.ts +37 -0
  214. package/dist/src/sheet/draft-bridge.d.ts.map +1 -0
  215. package/dist/src/sheet/draft-bridge.js +153 -0
  216. package/dist/src/sheet/draft-bridge.js.map +1 -0
  217. package/dist/src/sheet/drafts.d.ts +14 -0
  218. package/dist/src/sheet/drafts.d.ts.map +1 -0
  219. package/dist/src/sheet/drafts.js +14 -0
  220. package/dist/src/sheet/drafts.js.map +1 -0
  221. package/dist/src/sheet/editing-bridge.d.ts +40 -0
  222. package/dist/src/sheet/editing-bridge.d.ts.map +1 -0
  223. package/dist/src/sheet/editing-bridge.js +231 -0
  224. package/dist/src/sheet/editing-bridge.js.map +1 -0
  225. package/dist/src/sheet/editing-types.d.ts +268 -0
  226. package/dist/src/sheet/editing-types.d.ts.map +1 -0
  227. package/dist/src/sheet/editing-types.js +34 -0
  228. package/dist/src/sheet/editing-types.js.map +1 -0
  229. package/dist/src/sheet/edits.d.ts +37 -0
  230. package/dist/src/sheet/edits.d.ts.map +1 -0
  231. package/dist/src/sheet/edits.js +31 -0
  232. package/dist/src/sheet/edits.js.map +1 -0
  233. package/dist/src/sheet/fields.d.ts +693 -0
  234. package/dist/src/sheet/fields.d.ts.map +1 -0
  235. package/dist/src/sheet/fields.js +280 -0
  236. package/dist/src/sheet/fields.js.map +1 -0
  237. package/dist/src/sheet/group.d.ts +165 -0
  238. package/dist/src/sheet/group.d.ts.map +1 -0
  239. package/dist/src/sheet/group.js +52 -0
  240. package/dist/src/sheet/group.js.map +1 -0
  241. package/dist/src/sheet/index.d.ts +542 -0
  242. package/dist/src/sheet/index.d.ts.map +1 -0
  243. package/dist/src/sheet/index.js +387 -0
  244. package/dist/src/sheet/index.js.map +1 -0
  245. package/dist/src/sheet/library.d.ts +284 -0
  246. package/dist/src/sheet/library.d.ts.map +1 -0
  247. package/dist/src/sheet/library.js +259 -0
  248. package/dist/src/sheet/library.js.map +1 -0
  249. package/dist/src/sheet/link.d.ts +398 -0
  250. package/dist/src/sheet/link.d.ts.map +1 -0
  251. package/dist/src/sheet/link.js +228 -0
  252. package/dist/src/sheet/link.js.map +1 -0
  253. package/dist/src/sheet/record.d.ts +75 -0
  254. package/dist/src/sheet/record.d.ts.map +1 -0
  255. package/dist/src/sheet/record.js +128 -0
  256. package/dist/src/sheet/record.js.map +1 -0
  257. package/dist/src/sheet/registers.d.ts +681 -0
  258. package/dist/src/sheet/registers.d.ts.map +1 -0
  259. package/dist/src/sheet/registers.js +671 -0
  260. package/dist/src/sheet/registers.js.map +1 -0
  261. package/dist/src/sheet/root.d.ts +329 -0
  262. package/dist/src/sheet/root.d.ts.map +1 -0
  263. package/dist/src/sheet/root.js +511 -0
  264. package/dist/src/sheet/root.js.map +1 -0
  265. package/dist/src/sheet/seed-bridge.d.ts +14 -0
  266. package/dist/src/sheet/seed-bridge.d.ts.map +1 -0
  267. package/dist/src/sheet/seed-bridge.js +51 -0
  268. package/dist/src/sheet/seed-bridge.js.map +1 -0
  269. package/dist/src/sheet/sheet.d.ts +11819 -0
  270. package/dist/src/sheet/sheet.d.ts.map +1 -0
  271. package/dist/src/sheet/sheet.js +236 -0
  272. package/dist/src/sheet/sheet.js.map +1 -0
  273. package/dist/src/sheet/sub-rows.d.ts +299 -0
  274. package/dist/src/sheet/sub-rows.d.ts.map +1 -0
  275. package/dist/src/sheet/sub-rows.js +272 -0
  276. package/dist/src/sheet/sub-rows.js.map +1 -0
  277. package/dist/src/sheet/templates.d.ts +161 -0
  278. package/dist/src/sheet/templates.d.ts.map +1 -0
  279. package/dist/src/sheet/templates.js +122 -0
  280. package/dist/src/sheet/templates.js.map +1 -0
  281. package/dist/src/sheet/transactions.d.ts +76 -0
  282. package/dist/src/sheet/transactions.d.ts.map +1 -0
  283. package/dist/src/sheet/transactions.js +40 -0
  284. package/dist/src/sheet/transactions.js.map +1 -0
  285. package/dist/src/sheet/types.d.ts +15226 -0
  286. package/dist/src/sheet/types.d.ts.map +1 -0
  287. package/dist/src/sheet/types.js +1070 -0
  288. package/dist/src/sheet/types.js.map +1 -0
  289. package/dist/src/sheet/views.d.ts +29 -0
  290. package/dist/src/sheet/views.d.ts.map +1 -0
  291. package/dist/src/sheet/views.js +43 -0
  292. package/dist/src/sheet/views.js.map +1 -0
  293. package/dist/src/studio/component.d.ts.map +1 -1
  294. package/dist/src/studio/component.js +11 -8
  295. package/dist/src/studio/component.js.map +1 -1
  296. package/dist/src/utils/derive.d.ts +134 -8
  297. package/dist/src/utils/derive.d.ts.map +1 -1
  298. package/dist/src/utils/derive.js +409 -7
  299. package/dist/src/utils/derive.js.map +1 -1
  300. package/dist/src/utils/ordered-source.d.ts +38 -0
  301. package/dist/src/utils/ordered-source.d.ts.map +1 -0
  302. package/dist/src/utils/ordered-source.js +45 -0
  303. package/dist/src/utils/ordered-source.js.map +1 -0
  304. package/dist/src/utils/row-inspector.d.ts +36 -0
  305. package/dist/src/utils/row-inspector.d.ts.map +1 -0
  306. package/dist/src/utils/row-inspector.js +49 -0
  307. package/dist/src/utils/row-inspector.js.map +1 -0
  308. package/dist/test/bind/data/data.examples.d.ts +21 -19
  309. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  310. package/dist/test/bind/data/data.examples.js +122 -122
  311. package/dist/test/bind/data/data.examples.js.map +1 -1
  312. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  313. package/dist/test/bind/record/record.examples.js +9 -9
  314. package/dist/test/bind/record/record.examples.js.map +1 -1
  315. package/dist/test/calendar/calendar-records.examples.d.ts +228 -0
  316. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -0
  317. package/dist/test/calendar/calendar-records.examples.js +91 -0
  318. package/dist/test/calendar/calendar-records.examples.js.map +1 -0
  319. package/dist/test/calendar/calendar.examples.d.ts +776 -0
  320. package/dist/test/calendar/calendar.examples.d.ts.map +1 -0
  321. package/dist/test/calendar/calendar.examples.js +336 -0
  322. package/dist/test/calendar/calendar.examples.js.map +1 -0
  323. package/dist/test/decision/journal.examples.d.ts +28 -28
  324. package/dist/test/decision/journal.examples.d.ts.map +1 -1
  325. package/dist/test/decision/journal.examples.js +4 -4
  326. package/dist/test/decision/journal.examples.js.map +1 -1
  327. package/dist/test/decision/queue.examples.d.ts.map +1 -1
  328. package/dist/test/decision/queue.examples.js +5 -7
  329. package/dist/test/decision/queue.examples.js.map +1 -1
  330. package/dist/test/flowchart/flowchart.examples.d.ts +3713 -0
  331. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -0
  332. package/dist/test/flowchart/flowchart.examples.js +465 -0
  333. package/dist/test/flowchart/flowchart.examples.js.map +1 -0
  334. package/dist/test/plan/plan-events.examples.d.ts +3666 -0
  335. package/dist/test/plan/plan-events.examples.d.ts.map +1 -0
  336. package/dist/test/plan/plan-events.examples.js +773 -0
  337. package/dist/test/plan/plan-events.examples.js.map +1 -0
  338. package/dist/test/plan/plan-records.examples.d.ts +3 -0
  339. package/dist/test/plan/plan-records.examples.d.ts.map +1 -0
  340. package/dist/test/plan/plan-records.examples.js +45 -0
  341. package/dist/test/plan/plan-records.examples.js.map +1 -0
  342. package/dist/test/plan/plan-windows.examples.d.ts +588 -0
  343. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -0
  344. package/dist/test/plan/plan-windows.examples.js +170 -0
  345. package/dist/test/plan/plan-windows.examples.js.map +1 -0
  346. package/dist/test/plan/plan.examples.d.ts +8095 -0
  347. package/dist/test/plan/plan.examples.d.ts.map +1 -0
  348. package/dist/test/plan/plan.examples.js +2500 -0
  349. package/dist/test/plan/plan.examples.js.map +1 -0
  350. package/dist/test/roster/domain.examples.d.ts +367 -0
  351. package/dist/test/roster/domain.examples.d.ts.map +1 -0
  352. package/dist/test/roster/domain.examples.js +72 -0
  353. package/dist/test/roster/domain.examples.js.map +1 -0
  354. package/dist/test/roster/roster-records.examples.d.ts +729 -0
  355. package/dist/test/roster/roster-records.examples.d.ts.map +1 -0
  356. package/dist/test/roster/roster-records.examples.js +86 -0
  357. package/dist/test/roster/roster-records.examples.js.map +1 -0
  358. package/dist/test/roster/roster.examples.d.ts +750 -0
  359. package/dist/test/roster/roster.examples.d.ts.map +1 -0
  360. package/dist/test/roster/roster.examples.js +198 -0
  361. package/dist/test/roster/roster.examples.js.map +1 -0
  362. package/dist/test/roster/warehouse.d.ts +87 -0
  363. package/dist/test/roster/warehouse.d.ts.map +1 -0
  364. package/dist/test/roster/warehouse.js +883 -0
  365. package/dist/test/roster/warehouse.js.map +1 -0
  366. package/dist/test/sheet/sheet-link.examples.d.ts +7 -0
  367. package/dist/test/sheet/sheet-link.examples.d.ts.map +1 -0
  368. package/dist/test/sheet/sheet-link.examples.js +41 -0
  369. package/dist/test/sheet/sheet-link.examples.js.map +1 -0
  370. package/dist/test/sheet/sheet-records.examples.d.ts +421 -0
  371. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -0
  372. package/dist/test/sheet/sheet-records.examples.js +79 -0
  373. package/dist/test/sheet/sheet-records.examples.js.map +1 -0
  374. package/dist/test/sheet/sheet-transactions.examples.d.ts +7 -0
  375. package/dist/test/sheet/sheet-transactions.examples.d.ts.map +1 -0
  376. package/dist/test/sheet/sheet-transactions.examples.js +58 -0
  377. package/dist/test/sheet/sheet-transactions.examples.js.map +1 -0
  378. package/dist/test/sheet/sheet.examples.d.ts +5562 -0
  379. package/dist/test/sheet/sheet.examples.d.ts.map +1 -0
  380. package/dist/test/sheet/sheet.examples.js +1178 -0
  381. package/dist/test/sheet/sheet.examples.js.map +1 -0
  382. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  383. package/dist/test/studio/studio.examples.js +11 -11
  384. package/dist/test/studio/studio.examples.js.map +1 -1
  385. package/package.json +12 -9
@@ -0,0 +1,398 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * `Sheet.link` — the link value's helpers: the grammar's parse / print pair
7
+ * as exported East functions (B§4.1, `Sheet Spec.md` §3.4), and the
8
+ * `arity` / `check` declarations a link column takes.
9
+ *
10
+ * The grammar here is the SYNTACTIC half the renderer and a task share —
11
+ * splitting halves on `>`, members on `,`, the counted form, ranges, the
12
+ * placeholder — resolved against a register's members so a code is
13
+ * `identified` and anything else is kept as `text`. Candidate scoring,
14
+ * prefix completion and the countable-by-attribute forms are the renderer's
15
+ * (`link/grammar.ts`, P3): they need the editor, not a value.
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import { type EastType, type ExprType, type SubtypeExprOrValue, ArrayType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType, SetType } from "@elaraai/east";
20
+ import { SheetCountedType, type SheetHalfLiteral, type SheetAnyContextOf, type SheetAnyCheckContextOf } from "./types.js";
21
+ /** A list of link members. */
22
+ export declare const SheetMembersType: ArrayType<import("@elaraai/east").VariantType<{
23
+ readonly identified: StructType<{
24
+ readonly key: StringType;
25
+ }>;
26
+ readonly range: StructType<{
27
+ readonly from: StringType;
28
+ readonly to: StringType;
29
+ }>;
30
+ readonly counted: StructType<{
31
+ readonly n: IntegerType;
32
+ readonly key: StringType;
33
+ }>;
34
+ readonly placeholder: NullType;
35
+ readonly text: StringType;
36
+ }>>;
37
+ /** A list of register members — what `parse` resolves against. */
38
+ export declare const SheetRegisterMembersType: ArrayType<StructType<{
39
+ readonly key: StringType;
40
+ readonly label: StringType;
41
+ readonly kind: StringType;
42
+ readonly aliases: ArrayType<StringType>;
43
+ readonly meta: OptionType<StringType>;
44
+ readonly parent: OptionType<StringType>;
45
+ readonly tone: OptionType<import("@elaraai/east").VariantType<{
46
+ readonly success: NullType;
47
+ readonly warning: NullType;
48
+ readonly danger: NullType;
49
+ readonly info: NullType;
50
+ readonly neutral: NullType;
51
+ }>>;
52
+ }>>;
53
+ /**
54
+ * Print one member in the grammar's display form.
55
+ *
56
+ * @remarks
57
+ * A module-scope East function (the Plan's `REBASE_ROWS` precedent): built
58
+ * once, called by `print` and by the factory's `String`-field projection.
59
+ */
60
+ export declare const printMember: import("@elaraai/east").CallableFunctionExpr<[import("@elaraai/east").VariantType<{
61
+ readonly identified: StructType<{
62
+ readonly key: StringType;
63
+ }>;
64
+ readonly range: StructType<{
65
+ readonly from: StringType;
66
+ readonly to: StringType;
67
+ }>;
68
+ readonly counted: StructType<{
69
+ readonly n: IntegerType;
70
+ readonly key: StringType;
71
+ }>;
72
+ readonly placeholder: NullType;
73
+ readonly text: StringType;
74
+ }>], StringType>;
75
+ /**
76
+ * `Sheet.link.print` — a link value as the planner would type it (B§4.2):
77
+ * `a > b`, `b` for a destination-only link, `a >` for a source-only one.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * import { East, StringType, variant } from "@elaraai/east";
82
+ * import { Sheet } from "@elaraai/e3-ui";
83
+ *
84
+ * const printed = East.function([], StringType, ($) => {
85
+ * const link = $.const({
86
+ * from: [variant("identified", { key: "R2140" }), variant("range", { from: "R2141", to: "R2145" })],
87
+ * to: [variant("counted", { n: 4n, key: "CNC router" }), variant("placeholder", null)],
88
+ * }, Sheet.Types.Link);
89
+ * return Sheet.link.print(link);
90
+ * });
91
+ * ```
92
+ */
93
+ export declare const printLink: import("@elaraai/east").CallableFunctionExpr<[StructType<{
94
+ readonly from: ArrayType<import("@elaraai/east").VariantType<{
95
+ readonly identified: StructType<{
96
+ readonly key: StringType;
97
+ }>;
98
+ readonly range: StructType<{
99
+ readonly from: StringType;
100
+ readonly to: StringType;
101
+ }>;
102
+ readonly counted: StructType<{
103
+ readonly n: IntegerType;
104
+ readonly key: StringType;
105
+ }>;
106
+ readonly placeholder: NullType;
107
+ readonly text: StringType;
108
+ }>>;
109
+ readonly to: ArrayType<import("@elaraai/east").VariantType<{
110
+ readonly identified: StructType<{
111
+ readonly key: StringType;
112
+ }>;
113
+ readonly range: StructType<{
114
+ readonly from: StringType;
115
+ readonly to: StringType;
116
+ }>;
117
+ readonly counted: StructType<{
118
+ readonly n: IntegerType;
119
+ readonly key: StringType;
120
+ }>;
121
+ readonly placeholder: NullType;
122
+ readonly text: StringType;
123
+ }>>;
124
+ }>], StringType>;
125
+ /**
126
+ * Print one member with the register's LABELS — the `store: "canonical"`
127
+ * form (B§4.2): an identified member prints its member's label when the
128
+ * register has it, its key otherwise; every other member prints as
129
+ * {@link printMember}.
130
+ */
131
+ export declare const printMemberWith: import("@elaraai/east").CallableFunctionExpr<[import("@elaraai/east").VariantType<{
132
+ readonly identified: StructType<{
133
+ readonly key: StringType;
134
+ }>;
135
+ readonly range: StructType<{
136
+ readonly from: StringType;
137
+ readonly to: StringType;
138
+ }>;
139
+ readonly counted: StructType<{
140
+ readonly n: IntegerType;
141
+ readonly key: StringType;
142
+ }>;
143
+ readonly placeholder: NullType;
144
+ readonly text: StringType;
145
+ }>, ArrayType<StructType<{
146
+ readonly key: StringType;
147
+ readonly label: StringType;
148
+ readonly kind: StringType;
149
+ readonly aliases: ArrayType<StringType>;
150
+ readonly meta: OptionType<StringType>;
151
+ readonly parent: OptionType<StringType>;
152
+ readonly tone: OptionType<import("@elaraai/east").VariantType<{
153
+ readonly success: NullType;
154
+ readonly warning: NullType;
155
+ readonly danger: NullType;
156
+ readonly info: NullType;
157
+ readonly neutral: NullType;
158
+ }>>;
159
+ }>>], StringType>;
160
+ /**
161
+ * `Sheet.link.print` with the register's labels — what a `String` field
162
+ * stores under `store: "canonical"` (B§4.2).
163
+ */
164
+ export declare const printLinkWith: import("@elaraai/east").CallableFunctionExpr<[StructType<{
165
+ readonly from: ArrayType<import("@elaraai/east").VariantType<{
166
+ readonly identified: StructType<{
167
+ readonly key: StringType;
168
+ }>;
169
+ readonly range: StructType<{
170
+ readonly from: StringType;
171
+ readonly to: StringType;
172
+ }>;
173
+ readonly counted: StructType<{
174
+ readonly n: IntegerType;
175
+ readonly key: StringType;
176
+ }>;
177
+ readonly placeholder: NullType;
178
+ readonly text: StringType;
179
+ }>>;
180
+ readonly to: ArrayType<import("@elaraai/east").VariantType<{
181
+ readonly identified: StructType<{
182
+ readonly key: StringType;
183
+ }>;
184
+ readonly range: StructType<{
185
+ readonly from: StringType;
186
+ readonly to: StringType;
187
+ }>;
188
+ readonly counted: StructType<{
189
+ readonly n: IntegerType;
190
+ readonly key: StringType;
191
+ }>;
192
+ readonly placeholder: NullType;
193
+ readonly text: StringType;
194
+ }>>;
195
+ }>, ArrayType<StructType<{
196
+ readonly key: StringType;
197
+ readonly label: StringType;
198
+ readonly kind: StringType;
199
+ readonly aliases: ArrayType<StringType>;
200
+ readonly meta: OptionType<StringType>;
201
+ readonly parent: OptionType<StringType>;
202
+ readonly tone: OptionType<import("@elaraai/east").VariantType<{
203
+ readonly success: NullType;
204
+ readonly warning: NullType;
205
+ readonly danger: NullType;
206
+ readonly info: NullType;
207
+ readonly neutral: NullType;
208
+ }>>;
209
+ }>>], StringType>;
210
+ /**
211
+ * `Sheet.link.parse` — the planner's text to a typed link, resolved against
212
+ * a register's members (B§4.1 / B§4.2): `a > b` fills both halves, `b`
213
+ * alone is a destination-only link, `a >` a source-only one.
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * import { East, none, some } from "@elaraai/east";
218
+ * import { Sheet } from "@elaraai/e3-ui";
219
+ *
220
+ * const parsed = East.function([], Sheet.Types.Link, ($) => {
221
+ * const members = $.const([
222
+ * { key: "R2140", label: "R2140", kind: "machine", aliases: [], meta: some("CNC router"), parent: some("Bay 2"), tone: none },
223
+ * { key: "CNC router", label: "CNC router", kind: "family", aliases: ["router", "routers"], meta: some("family"), parent: none, tone: none },
224
+ * ], Sheet.Types.RegisterMembers);
225
+ * return Sheet.link.parse("r2140 > 4 x router, R2141-45, TBC, spray shop", members);
226
+ * });
227
+ * ```
228
+ */
229
+ export declare const parseLink: import("@elaraai/east").CallableFunctionExpr<[StringType, ArrayType<StructType<{
230
+ readonly key: StringType;
231
+ readonly label: StringType;
232
+ readonly kind: StringType;
233
+ readonly aliases: ArrayType<StringType>;
234
+ readonly meta: OptionType<StringType>;
235
+ readonly parent: OptionType<StringType>;
236
+ readonly tone: OptionType<import("@elaraai/east").VariantType<{
237
+ readonly success: NullType;
238
+ readonly warning: NullType;
239
+ readonly danger: NullType;
240
+ readonly info: NullType;
241
+ readonly neutral: NullType;
242
+ }>>;
243
+ }>>], StructType<{
244
+ readonly from: ArrayType<import("@elaraai/east").VariantType<{
245
+ readonly identified: StructType<{
246
+ readonly key: StringType;
247
+ }>;
248
+ readonly range: StructType<{
249
+ readonly from: StringType;
250
+ readonly to: StringType;
251
+ }>;
252
+ readonly counted: StructType<{
253
+ readonly n: IntegerType;
254
+ readonly key: StringType;
255
+ }>;
256
+ readonly placeholder: NullType;
257
+ readonly text: StringType;
258
+ }>>;
259
+ readonly to: ArrayType<import("@elaraai/east").VariantType<{
260
+ readonly identified: StructType<{
261
+ readonly key: StringType;
262
+ }>;
263
+ readonly range: StructType<{
264
+ readonly from: StringType;
265
+ readonly to: StringType;
266
+ }>;
267
+ readonly counted: StructType<{
268
+ readonly n: IntegerType;
269
+ readonly key: StringType;
270
+ }>;
271
+ readonly placeholder: NullType;
272
+ readonly text: StringType;
273
+ }>>;
274
+ }>>;
275
+ /** The register keys a link's identified and counted members name — the `exists` check's vocabulary. */
276
+ export declare const linkKeys: import("@elaraai/east").CallableFunctionExpr<[StructType<{
277
+ readonly from: ArrayType<import("@elaraai/east").VariantType<{
278
+ readonly identified: StructType<{
279
+ readonly key: StringType;
280
+ }>;
281
+ readonly range: StructType<{
282
+ readonly from: StringType;
283
+ readonly to: StringType;
284
+ }>;
285
+ readonly counted: StructType<{
286
+ readonly n: IntegerType;
287
+ readonly key: StringType;
288
+ }>;
289
+ readonly placeholder: NullType;
290
+ readonly text: StringType;
291
+ }>>;
292
+ readonly to: ArrayType<import("@elaraai/east").VariantType<{
293
+ readonly identified: StructType<{
294
+ readonly key: StringType;
295
+ }>;
296
+ readonly range: StructType<{
297
+ readonly from: StringType;
298
+ readonly to: StringType;
299
+ }>;
300
+ readonly counted: StructType<{
301
+ readonly n: IntegerType;
302
+ readonly key: StringType;
303
+ }>;
304
+ readonly placeholder: NullType;
305
+ readonly text: StringType;
306
+ }>>;
307
+ }>], SetType<StringType>>;
308
+ /**
309
+ * A link column's arity declaration — `Sheet.link.arity(half, implied)`:
310
+ * an author rule over the typed context saying how many members the half
311
+ * should hold and which countable member to propose (B§4.6).
312
+ *
313
+ * @typeParam R - The host's row type
314
+ * @typeParam D - The driver's row type
315
+ * @property half - The half the rule counts (`"from"` / `"to"`)
316
+ * @property implied - `(ctx) => Option<Counted>` — an `East.function` over `Sheet.Types.Context(R, D)`
317
+ */
318
+ export interface SheetArityInput<R extends StructType = StructType, D extends EastType = EastType> {
319
+ /** The half the rule counts. */
320
+ readonly half: SheetHalfLiteral;
321
+ /** The rule — how many, and which countable member, given the row as it would be. */
322
+ readonly implied: SubtypeExprOrValue<FunctionType<[SheetAnyContextOf<R, D>], OptionType<SheetCountedType>>>;
323
+ }
324
+ /**
325
+ * Declares a link column's arity rule.
326
+ *
327
+ * @typeParam R - The host's row type (inferred from `implied`)
328
+ * @typeParam D - The driver's row type (inferred from `implied`)
329
+ * @param half - The half the rule counts
330
+ * @param implied - The rule — an `East.function` over `Sheet.Types.Context(R, D)` returning `Option<Sheet.Types.Counted>`
331
+ * @returns The declaration a `Sheet.column.link` config takes as `arity`
332
+ */
333
+ export declare function createArity<R extends StructType, D extends EastType>(half: SheetHalfLiteral, implied: SubtypeExprOrValue<FunctionType<[SheetAnyContextOf<R, D>], OptionType<SheetCountedType>>>): SheetArityInput<R, D>;
334
+ /** The grammar's own check — the member must resolve in the register. */
335
+ export interface SheetExistsCheck {
336
+ /** Discriminant. */
337
+ readonly exists: true;
338
+ }
339
+ /**
340
+ * One member check on a link column: the grammar's `exists`, or an author
341
+ * rule over `Sheet.Types.CheckContext(R)` returning `some(message)` to flag
342
+ * the member (B§2 `check`). Flags are shown, never enforced.
343
+ *
344
+ * @typeParam R - The host's row type
345
+ */
346
+ export type SheetCheckInput<R extends StructType = StructType> = SheetExistsCheck | SubtypeExprOrValue<FunctionType<[SheetAnyCheckContextOf<R>], OptionType<StringType>>>;
347
+ /** `Sheet.link.check` — the built-in checks. */
348
+ export declare const check: {
349
+ /**
350
+ * The grammar's own check: an identified, counted or range member must
351
+ * name a register key; a placeholder or text passes.
352
+ *
353
+ * @returns The `exists` check
354
+ */
355
+ readonly exists: () => SheetExistsCheck;
356
+ };
357
+ /** Whether a check input is the `exists` marker. */
358
+ export declare function isExistsCheck(c: unknown): c is SheetExistsCheck;
359
+ /** The lock-table input of a link column's `sides` — half → sides value → tag text. */
360
+ export type SheetLocksInput = Partial<Record<SheetHalfLiteral, Partial<Record<"both" | "from" | "to" | "in", string>>>>;
361
+ /** A `none` of the given type, as an expression — the shared fallback spelling. */
362
+ export declare function noneOf<T extends EastType>(type: T): ExprType<OptionType<T>>;
363
+ /** The empty link value. */
364
+ export declare const EMPTY_LINK: import("@elaraai/east").StructExpr<{
365
+ readonly from: ArrayType<import("@elaraai/east").VariantType<{
366
+ readonly identified: StructType<{
367
+ readonly key: StringType;
368
+ }>;
369
+ readonly range: StructType<{
370
+ readonly from: StringType;
371
+ readonly to: StringType;
372
+ }>;
373
+ readonly counted: StructType<{
374
+ readonly n: IntegerType;
375
+ readonly key: StringType;
376
+ }>;
377
+ readonly placeholder: NullType;
378
+ readonly text: StringType;
379
+ }>>;
380
+ readonly to: ArrayType<import("@elaraai/east").VariantType<{
381
+ readonly identified: StructType<{
382
+ readonly key: StringType;
383
+ }>;
384
+ readonly range: StructType<{
385
+ readonly from: StringType;
386
+ readonly to: StringType;
387
+ }>;
388
+ readonly counted: StructType<{
389
+ readonly n: IntegerType;
390
+ readonly key: StringType;
391
+ }>;
392
+ readonly placeholder: NullType;
393
+ readonly text: StringType;
394
+ }>>;
395
+ }>;
396
+ /** Re-exported so the builders type their `NullType` driver default without a second import. */
397
+ export { NullType };
398
+ //# sourceMappingURL=link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/sheet/link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,228 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * `Sheet.link` — the link value's helpers: the grammar's parse / print pair
7
+ * as exported East functions (B§4.1, `Sheet Spec.md` §3.4), and the
8
+ * `arity` / `check` declarations a link column takes.
9
+ *
10
+ * The grammar here is the SYNTACTIC half the renderer and a task share —
11
+ * splitting halves on `>`, members on `,`, the counted form, ranges, the
12
+ * placeholder — resolved against a register's members so a code is
13
+ * `identified` and anything else is kept as `text`. Candidate scoring,
14
+ * prefix completion and the countable-by-attribute forms are the renderer's
15
+ * (`link/grammar.ts`, P3): they need the editor, not a value.
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import { East, ArrayType, FunctionType, IntegerType, NullType, OptionType, StringType, StructType, SetType, variant, some, none, } from "@elaraai/east";
20
+ import { SheetMemberType, SheetLinkType, SheetRegisterMemberType, SheetCountedType, } from "./types.js";
21
+ /** A list of link members. */
22
+ export const SheetMembersType = ArrayType(SheetMemberType);
23
+ /** A list of register members — what `parse` resolves against. */
24
+ export const SheetRegisterMembersType = ArrayType(SheetRegisterMemberType);
25
+ // ============================================================================
26
+ // Print — the grammar's display form
27
+ // ============================================================================
28
+ /**
29
+ * Print one member in the grammar's display form.
30
+ *
31
+ * @remarks
32
+ * A module-scope East function (the Plan's `REBASE_ROWS` precedent): built
33
+ * once, called by `print` and by the factory's `String`-field projection.
34
+ */
35
+ export const printMember = East.function([SheetMemberType], StringType, (_$, m) => m.match({
36
+ identified: (_$2, v) => v.key,
37
+ range: (_$2, v) => East.str `${v.from}-${v.to}`,
38
+ counted: (_$2, v) => East.str `${v.n} x ${v.key}`,
39
+ placeholder: (_$2) => East.value("TBC", StringType),
40
+ text: (_$2, t) => t,
41
+ }));
42
+ /**
43
+ * `Sheet.link.print` — a link value as the planner would type it (B§4.2):
44
+ * `a > b`, `b` for a destination-only link, `a >` for a source-only one.
45
+ *
46
+ * @example
47
+ * ```ts
48
+ * import { East, StringType, variant } from "@elaraai/east";
49
+ * import { Sheet } from "@elaraai/e3-ui";
50
+ *
51
+ * const printed = East.function([], StringType, ($) => {
52
+ * const link = $.const({
53
+ * from: [variant("identified", { key: "R2140" }), variant("range", { from: "R2141", to: "R2145" })],
54
+ * to: [variant("counted", { n: 4n, key: "CNC router" }), variant("placeholder", null)],
55
+ * }, Sheet.Types.Link);
56
+ * return Sheet.link.print(link);
57
+ * });
58
+ * ```
59
+ */
60
+ export const printLink = East.function([SheetLinkType], StringType, ($, link) => {
61
+ const pm = $.const(printMember);
62
+ const from = $.let(link.from.map((_$, m) => pm(m)).stringJoin(", "), StringType);
63
+ const to = $.let(link.to.map((_$, m) => pm(m)).stringJoin(", "), StringType);
64
+ return link.from.length().equal(0n).ifElse((_$) => to, (_$) => link.to.length().equal(0n).ifElse((_$2) => East.str `${from} >`, (_$2) => East.str `${from} > ${to}`));
65
+ });
66
+ /**
67
+ * Print one member with the register's LABELS — the `store: "canonical"`
68
+ * form (B§4.2): an identified member prints its member's label when the
69
+ * register has it, its key otherwise; every other member prints as
70
+ * {@link printMember}.
71
+ */
72
+ export const printMemberWith = East.function([SheetMemberType, SheetRegisterMembersType], StringType, ($, m, members) => {
73
+ const pm = $.const(printMember);
74
+ return m.match({
75
+ identified: (_$2, v) => members.firstMap((_$3, r) => r.key.equal(v.key).ifElse((_$4) => East.value(some(r.label), OptionType(StringType)), (_$4) => East.value(none, OptionType(StringType)))).match({
76
+ some: (_$3, label) => label,
77
+ none: (_$3) => v.key,
78
+ }),
79
+ }, (_$2) => pm(m));
80
+ });
81
+ /**
82
+ * `Sheet.link.print` with the register's labels — what a `String` field
83
+ * stores under `store: "canonical"` (B§4.2).
84
+ */
85
+ export const printLinkWith = East.function([SheetLinkType, SheetRegisterMembersType], StringType, ($, link, members) => {
86
+ const pm = $.const(printMemberWith);
87
+ const from = $.let(link.from.map((_$, m) => pm(m, members)).stringJoin(", "), StringType);
88
+ const to = $.let(link.to.map((_$, m) => pm(m, members)).stringJoin(", "), StringType);
89
+ return link.from.length().equal(0n).ifElse((_$) => to, (_$) => link.to.length().equal(0n).ifElse((_$2) => East.str `${from} >`, (_$2) => East.str `${from} > ${to}`));
90
+ });
91
+ // ============================================================================
92
+ // Parse — text to a link value, against a register
93
+ // ============================================================================
94
+ /** The key of the register member a token names (by key or alias, case-insensitive). */
95
+ const resolveKey = East.function([StringType, SheetRegisterMembersType], OptionType(StringType), ($, token, members) => {
96
+ const t = $.let(token.trim().lowerCase(), StringType);
97
+ return members.firstMap((_$, m) => m.key.lowerCase().equal(t)
98
+ .or(() => m.aliases.map((_$2, a) => a.lowerCase()).toSet().has(t))
99
+ .ifElse((_$2) => East.value(some(m.key), OptionType(StringType)), (_$2) => East.value(none, OptionType(StringType))));
100
+ });
101
+ /** The counted form `N x key` / `key x N` (B§4.1) — `none` when the token is not one. */
102
+ const parseCounted = East.function([StringType, SheetRegisterMembersType], OptionType(SheetCountedType), ($, token, members) => {
103
+ // `×` folds into the ASCII operator so one regex covers every declared op.
104
+ const tok = $.let(token.replace("×", " x "), StringType);
105
+ const noCount = $.const(none, OptionType(SheetCountedType));
106
+ const resolve = $.const(resolveKey);
107
+ const keyOf = $.const(East.function([StringType], StringType, ($2, rest) => resolve(rest, members).match({
108
+ some: (_$3, k) => k,
109
+ none: (_$3) => rest.trim(),
110
+ })));
111
+ return tok.contains(new RegExp("^\\d+\\s*[xX*]\\s*\\S")).ifElse(($2) => {
112
+ // Leading count: `4 x router`.
113
+ const at = $2.let(tok.indexOf(new RegExp("[xX*]")), IntegerType);
114
+ const digits = $2.let(tok.substring(0n, at).trim(), StringType);
115
+ const n = $2.let(digits.parse(IntegerType), IntegerType);
116
+ const rest = $2.let(tok.substring(at.add(1n), tok.length()).trim(), StringType);
117
+ return East.value(some({ n, key: keyOf(rest) }), OptionType(SheetCountedType));
118
+ }, (_$2) => tok.contains(new RegExp("\\S\\s+[xX*]\\s*\\d+$")).ifElse(($3) => {
119
+ // Trailing count: `router x 4`.
120
+ const at = $3.let(tok.indexOf(new RegExp("\\s+[xX*]\\s*\\d+$")), IntegerType);
121
+ const rest = $3.let(tok.substring(0n, at).trim(), StringType);
122
+ const tail = $3.let(tok.substring(at, tok.length()), StringType);
123
+ const digits = $3.let(tail.substring(tail.indexOf(new RegExp("\\d")), tail.length()).trim(), StringType);
124
+ const n = $3.let(digits.parse(IntegerType), IntegerType);
125
+ return East.value(some({ n, key: keyOf(rest) }), OptionType(SheetCountedType));
126
+ }, (_$3) => noCount));
127
+ });
128
+ /**
129
+ * One token to a member (B§4.1): the placeholder, a register code, the
130
+ * counted form, a range, else text — never blocked.
131
+ */
132
+ const parseMember = East.function([StringType, SheetRegisterMembersType], SheetMemberType, ($, raw, members) => {
133
+ const tok = $.let(raw.trim(), StringType);
134
+ const resolve = $.const(resolveKey);
135
+ const counted = $.const(parseCounted);
136
+ return tok.upperCase().equal("TBC").ifElse((_$) => East.value(variant("placeholder", null), SheetMemberType), (_$2) => resolve(tok, members).match({
137
+ some: (_$3, key) => East.value(variant("identified", { key }), SheetMemberType),
138
+ none: (_$3) => counted(tok, members).match({
139
+ some: (_$4, c) => East.value(variant("counted", { n: c.n, key: c.key }), SheetMemberType),
140
+ none: (_$4) => tok.contains(new RegExp("^[A-Za-z]*\\d+-\\d+$")).ifElse(($5) => {
141
+ // A range; a short upper bound completes from the lower (`R2140-45` ⇒ `R2145`).
142
+ const parts = $5.let(tok.split("-"), ArrayType(StringType));
143
+ const from = $5.let(parts.get(0n), StringType);
144
+ const upper = $5.let(parts.get(1n), StringType);
145
+ const to = $5.let(upper.length().less(from.length()).ifElse((_$6) => from.substring(0n, from.length().subtract(upper.length())).concat(upper), (_$6) => upper), StringType);
146
+ return East.value(variant("range", { from, to }), SheetMemberType);
147
+ }, (_$5) => East.value(variant("text", tok), SheetMemberType)),
148
+ }),
149
+ }));
150
+ });
151
+ /** The members of one half — comma-separated tokens, blanks dropped. */
152
+ const parseHalf = East.function([StringType, SheetRegisterMembersType], SheetMembersType, ($, text, members) => {
153
+ const member = $.const(parseMember);
154
+ return text.split(",").filterMap((_$2, tok) => tok.trim().length().equal(0n).ifElse((_$3) => East.value(none, OptionType(SheetMemberType)), (_$3) => East.value(some(member(tok, members)), OptionType(SheetMemberType))));
155
+ });
156
+ /**
157
+ * `Sheet.link.parse` — the planner's text to a typed link, resolved against
158
+ * a register's members (B§4.1 / B§4.2): `a > b` fills both halves, `b`
159
+ * alone is a destination-only link, `a >` a source-only one.
160
+ *
161
+ * @example
162
+ * ```ts
163
+ * import { East, none, some } from "@elaraai/east";
164
+ * import { Sheet } from "@elaraai/e3-ui";
165
+ *
166
+ * const parsed = East.function([], Sheet.Types.Link, ($) => {
167
+ * const members = $.const([
168
+ * { key: "R2140", label: "R2140", kind: "machine", aliases: [], meta: some("CNC router"), parent: some("Bay 2"), tone: none },
169
+ * { key: "CNC router", label: "CNC router", kind: "family", aliases: ["router", "routers"], meta: some("family"), parent: none, tone: none },
170
+ * ], Sheet.Types.RegisterMembers);
171
+ * return Sheet.link.parse("r2140 > 4 x router, R2141-45, TBC, spray shop", members);
172
+ * });
173
+ * ```
174
+ */
175
+ export const parseLink = East.function([StringType, SheetRegisterMembersType], SheetLinkType, ($, text, members) => {
176
+ const emptyMembers = $.const([], SheetMembersType);
177
+ const half = $.const(parseHalf);
178
+ return text.contains(">").ifElse(($2) => {
179
+ const at = $2.let(text.indexOf(">"), IntegerType);
180
+ const from = $2.let(half(text.substring(0n, at), members), SheetMembersType);
181
+ const to = $2.let(half(text.substring(at.add(1n), text.length()), members), SheetMembersType);
182
+ return $2.let({ from, to }, SheetLinkType);
183
+ }, ($2) => {
184
+ const to = $2.let(half(text, members), SheetMembersType);
185
+ return $2.let({ from: emptyMembers, to }, SheetLinkType);
186
+ });
187
+ });
188
+ /** The register keys a link's identified and counted members name — the `exists` check's vocabulary. */
189
+ export const linkKeys = East.function([SheetLinkType], SetType(StringType), (_$, link) => link.from.concat(link.to).filterMap((_$2, m) => m.match({
190
+ identified: (_$3, v) => East.value(some(v.key), OptionType(StringType)),
191
+ counted: (_$3, v) => East.value(some(v.key), OptionType(StringType)),
192
+ range: (_$3, v) => East.value(some(v.from), OptionType(StringType)),
193
+ }, (_$3) => East.value(none, OptionType(StringType)))).toSet());
194
+ /**
195
+ * Declares a link column's arity rule.
196
+ *
197
+ * @typeParam R - The host's row type (inferred from `implied`)
198
+ * @typeParam D - The driver's row type (inferred from `implied`)
199
+ * @param half - The half the rule counts
200
+ * @param implied - The rule — an `East.function` over `Sheet.Types.Context(R, D)` returning `Option<Sheet.Types.Counted>`
201
+ * @returns The declaration a `Sheet.column.link` config takes as `arity`
202
+ */
203
+ export function createArity(half, implied) {
204
+ return { half, implied };
205
+ }
206
+ /** `Sheet.link.check` — the built-in checks. */
207
+ export const check = {
208
+ /**
209
+ * The grammar's own check: an identified, counted or range member must
210
+ * name a register key; a placeholder or text passes.
211
+ *
212
+ * @returns The `exists` check
213
+ */
214
+ exists: () => ({ exists: true }),
215
+ };
216
+ /** Whether a check input is the `exists` marker. */
217
+ export function isExistsCheck(c) {
218
+ return typeof c === "object" && c !== null && c.exists === true;
219
+ }
220
+ /** A `none` of the given type, as an expression — the shared fallback spelling. */
221
+ export function noneOf(type) {
222
+ return East.value(none, OptionType(type));
223
+ }
224
+ /** The empty link value. */
225
+ export const EMPTY_LINK = East.value({ from: [], to: [] }, SheetLinkType);
226
+ /** Re-exported so the builders type their `NullType` driver default without a second import. */
227
+ export { NullType };
228
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/sheet/link.ts"],"names":[],"mappings":"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"}