@elaraai/e3-ui 1.0.97 → 1.0.99

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 (491) hide show
  1. package/README.md +0 -2
  2. package/dist/src/allocation/adapters.d.ts +1 -1
  3. package/dist/src/allocation/adapters.js +1 -1
  4. package/dist/src/allocation/index.d.ts +232 -25
  5. package/dist/src/allocation/index.d.ts.map +1 -1
  6. package/dist/src/allocation/index.js +35 -6
  7. package/dist/src/allocation/index.js.map +1 -1
  8. package/dist/src/allocation/types.d.ts +41 -0
  9. package/dist/src/allocation/types.d.ts.map +1 -1
  10. package/dist/src/allocation/types.js +35 -0
  11. package/dist/src/allocation/types.js.map +1 -1
  12. package/dist/src/bind/data-indexed.d.ts +286 -37
  13. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  14. package/dist/src/bind/data-indexed.js +259 -38
  15. package/dist/src/bind/data-indexed.js.map +1 -1
  16. package/dist/src/bind/data.d.ts +48 -9
  17. package/dist/src/bind/data.d.ts.map +1 -1
  18. package/dist/src/bind/data.js +48 -3
  19. package/dist/src/bind/data.js.map +1 -1
  20. package/dist/src/bind/record.d.ts +61 -24
  21. package/dist/src/bind/record.d.ts.map +1 -1
  22. package/dist/src/bind/record.js +17 -57
  23. package/dist/src/bind/record.js.map +1 -1
  24. package/dist/src/calendar/index.d.ts +522 -36
  25. package/dist/src/calendar/index.d.ts.map +1 -1
  26. package/dist/src/calendar/index.js +53 -13
  27. package/dist/src/calendar/index.js.map +1 -1
  28. package/dist/src/calendar/paged.d.ts +89 -0
  29. package/dist/src/calendar/paged.d.ts.map +1 -0
  30. package/dist/src/calendar/paged.js +148 -0
  31. package/dist/src/calendar/paged.js.map +1 -0
  32. package/dist/src/flowchart/index.d.ts +35 -31
  33. package/dist/src/flowchart/index.d.ts.map +1 -1
  34. package/dist/src/flowchart/index.js +35 -31
  35. package/dist/src/flowchart/index.js.map +1 -1
  36. package/dist/src/flowchart/library.d.ts +108 -84
  37. package/dist/src/flowchart/library.d.ts.map +1 -1
  38. package/dist/src/flowchart/library.js +108 -84
  39. package/dist/src/flowchart/library.js.map +1 -1
  40. package/dist/src/flowchart/payload.d.ts +105 -17
  41. package/dist/src/flowchart/payload.d.ts.map +1 -1
  42. package/dist/src/flowchart/payload.js +3 -3
  43. package/dist/src/flowchart/payload.js.map +1 -1
  44. package/dist/src/flowchart/values.d.ts +35 -31
  45. package/dist/src/flowchart/values.d.ts.map +1 -1
  46. package/dist/src/flowchart/values.js +35 -31
  47. package/dist/src/flowchart/values.js.map +1 -1
  48. package/dist/src/flowchart/window.d.ts.map +1 -1
  49. package/dist/src/flowchart/window.js +3 -2
  50. package/dist/src/flowchart/window.js.map +1 -1
  51. package/dist/src/index.d.ts +13 -4
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +20 -1
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/internal.d.ts +18 -8
  56. package/dist/src/internal.d.ts.map +1 -1
  57. package/dist/src/internal.js +40 -10
  58. package/dist/src/internal.js.map +1 -1
  59. package/dist/src/plan/assemble.d.ts +8 -0
  60. package/dist/src/plan/assemble.d.ts.map +1 -1
  61. package/dist/src/plan/assemble.js +1 -1
  62. package/dist/src/plan/assemble.js.map +1 -1
  63. package/dist/src/plan/builders.d.ts +1530 -10
  64. package/dist/src/plan/builders.d.ts.map +1 -1
  65. package/dist/src/plan/builders.js +260 -122
  66. package/dist/src/plan/builders.js.map +1 -1
  67. package/dist/src/plan/event-rows.d.ts +224 -157
  68. package/dist/src/plan/event-rows.d.ts.map +1 -1
  69. package/dist/src/plan/event-rows.js +201 -56
  70. package/dist/src/plan/event-rows.js.map +1 -1
  71. package/dist/src/plan/factories.d.ts +72 -4
  72. package/dist/src/plan/factories.d.ts.map +1 -1
  73. package/dist/src/plan/factories.js +147 -1
  74. package/dist/src/plan/factories.js.map +1 -1
  75. package/dist/src/plan/index.d.ts +152 -125
  76. package/dist/src/plan/index.d.ts.map +1 -1
  77. package/dist/src/plan/index.js +138 -122
  78. package/dist/src/plan/index.js.map +1 -1
  79. package/dist/src/plan/ir.d.ts +1139 -8
  80. package/dist/src/plan/ir.d.ts.map +1 -1
  81. package/dist/src/plan/ir.js +5 -0
  82. package/dist/src/plan/ir.js.map +1 -1
  83. package/dist/src/plan/library.d.ts +65 -42
  84. package/dist/src/plan/library.d.ts.map +1 -1
  85. package/dist/src/plan/library.js +65 -42
  86. package/dist/src/plan/library.js.map +1 -1
  87. package/dist/src/plan/nested-checks.d.ts +146 -0
  88. package/dist/src/plan/nested-checks.d.ts.map +1 -0
  89. package/dist/src/plan/nested-checks.js +468 -0
  90. package/dist/src/plan/nested-checks.js.map +1 -0
  91. package/dist/src/plan/nested-patch.d.ts +35 -0
  92. package/dist/src/plan/nested-patch.d.ts.map +1 -0
  93. package/dist/src/plan/nested-patch.js +143 -0
  94. package/dist/src/plan/nested-patch.js.map +1 -0
  95. package/dist/src/plan/nested-read.d.ts +3250 -0
  96. package/dist/src/plan/nested-read.d.ts.map +1 -0
  97. package/dist/src/plan/nested-read.js +163 -0
  98. package/dist/src/plan/nested-read.js.map +1 -0
  99. package/dist/src/plan/nested.d.ts +280 -0
  100. package/dist/src/plan/nested.d.ts.map +1 -0
  101. package/dist/src/plan/nested.js +6 -0
  102. package/dist/src/plan/nested.js.map +1 -0
  103. package/dist/src/plan/ordered-source.d.ts +3067 -1
  104. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  105. package/dist/src/plan/ordered-source.js +67 -17
  106. package/dist/src/plan/ordered-source.js.map +1 -1
  107. package/dist/src/plan/over.d.ts +111 -75
  108. package/dist/src/plan/over.d.ts.map +1 -1
  109. package/dist/src/plan/over.js +111 -75
  110. package/dist/src/plan/over.js.map +1 -1
  111. package/dist/src/plan/pick.d.ts +15 -3
  112. package/dist/src/plan/pick.d.ts.map +1 -1
  113. package/dist/src/plan/pick.js +75 -36
  114. package/dist/src/plan/pick.js.map +1 -1
  115. package/dist/src/plan/plan.d.ts +3143 -501
  116. package/dist/src/plan/plan.d.ts.map +1 -1
  117. package/dist/src/plan/plan.js +133 -34
  118. package/dist/src/plan/plan.js.map +1 -1
  119. package/dist/src/plan/reads.d.ts +421 -0
  120. package/dist/src/plan/reads.d.ts.map +1 -0
  121. package/dist/src/plan/reads.js +143 -0
  122. package/dist/src/plan/reads.js.map +1 -0
  123. package/dist/src/plan/refs.d.ts +111 -75
  124. package/dist/src/plan/refs.d.ts.map +1 -1
  125. package/dist/src/plan/refs.js +111 -75
  126. package/dist/src/plan/refs.js.map +1 -1
  127. package/dist/src/plan/root.d.ts +14 -7
  128. package/dist/src/plan/root.d.ts.map +1 -1
  129. package/dist/src/plan/root.js +82 -17
  130. package/dist/src/plan/root.js.map +1 -1
  131. package/dist/src/plan/series.d.ts +5153 -4331
  132. package/dist/src/plan/series.d.ts.map +1 -1
  133. package/dist/src/plan/series.js +1082 -266
  134. package/dist/src/plan/series.js.map +1 -1
  135. package/dist/src/plan/shade.d.ts +981 -0
  136. package/dist/src/plan/shade.d.ts.map +1 -0
  137. package/dist/src/plan/shade.js +60 -0
  138. package/dist/src/plan/shade.js.map +1 -0
  139. package/dist/src/plan/types.d.ts +192 -18
  140. package/dist/src/plan/types.d.ts.map +1 -1
  141. package/dist/src/plan/types.js +77 -19
  142. package/dist/src/plan/types.js.map +1 -1
  143. package/dist/src/query/builder.d.ts +3 -3
  144. package/dist/src/query/builder.d.ts.map +1 -1
  145. package/dist/src/query/builder.js +1 -1
  146. package/dist/src/query/library.d.ts +3 -3
  147. package/dist/src/query/library.d.ts.map +1 -1
  148. package/dist/src/query/library.js +1 -1
  149. package/dist/src/query/queries.d.ts +2 -2
  150. package/dist/src/query/queries.js +1 -1
  151. package/dist/src/query/saved.d.ts +8 -4
  152. package/dist/src/query/saved.d.ts.map +1 -1
  153. package/dist/src/query/saved.js +8 -4
  154. package/dist/src/query/saved.js.map +1 -1
  155. package/dist/src/query/types.d.ts +8 -3
  156. package/dist/src/query/types.d.ts.map +1 -1
  157. package/dist/src/query/types.js +8 -3
  158. package/dist/src/query/types.js.map +1 -1
  159. package/dist/src/roster/index.d.ts +583 -39
  160. package/dist/src/roster/index.d.ts.map +1 -1
  161. package/dist/src/roster/index.js +109 -35
  162. package/dist/src/roster/index.js.map +1 -1
  163. package/dist/src/roster/library.d.ts +12 -2
  164. package/dist/src/roster/library.d.ts.map +1 -1
  165. package/dist/src/roster/library.js +8 -0
  166. package/dist/src/roster/library.js.map +1 -1
  167. package/dist/src/roster/lists.d.ts +59 -12
  168. package/dist/src/roster/lists.d.ts.map +1 -1
  169. package/dist/src/roster/lists.js +51 -58
  170. package/dist/src/roster/lists.js.map +1 -1
  171. package/dist/src/roster/targets.d.ts +8 -4
  172. package/dist/src/roster/targets.d.ts.map +1 -1
  173. package/dist/src/roster/targets.js +9 -5
  174. package/dist/src/roster/targets.js.map +1 -1
  175. package/dist/src/roster/times.d.ts +402 -0
  176. package/dist/src/roster/times.d.ts.map +1 -1
  177. package/dist/src/roster/types.d.ts +913 -1
  178. package/dist/src/roster/types.d.ts.map +1 -1
  179. package/dist/src/roster/types.js +43 -3
  180. package/dist/src/roster/types.js.map +1 -1
  181. package/dist/src/schedule/cell-checks.d.ts +85 -0
  182. package/dist/src/schedule/cell-checks.d.ts.map +1 -0
  183. package/dist/src/schedule/cell-checks.js +211 -0
  184. package/dist/src/schedule/cell-checks.js.map +1 -0
  185. package/dist/src/schedule/days.d.ts +1 -1
  186. package/dist/src/schedule/days.js +1 -1
  187. package/dist/src/schedule/events.d.ts +52 -16
  188. package/dist/src/schedule/events.d.ts.map +1 -1
  189. package/dist/src/schedule/events.js +574 -356
  190. package/dist/src/schedule/events.js.map +1 -1
  191. package/dist/src/schedule/fields.d.ts +134 -0
  192. package/dist/src/schedule/fields.d.ts.map +1 -0
  193. package/dist/src/schedule/fields.js +207 -0
  194. package/dist/src/schedule/fields.js.map +1 -0
  195. package/dist/src/schedule/library.d.ts +11 -3
  196. package/dist/src/schedule/library.d.ts.map +1 -1
  197. package/dist/src/schedule/library.js +9 -6
  198. package/dist/src/schedule/library.js.map +1 -1
  199. package/dist/src/schedule/optimise.d.ts +124 -0
  200. package/dist/src/schedule/optimise.d.ts.map +1 -0
  201. package/dist/src/schedule/optimise.js +140 -0
  202. package/dist/src/schedule/optimise.js.map +1 -0
  203. package/dist/src/schedule/pages.d.ts +76 -0
  204. package/dist/src/schedule/pages.d.ts.map +1 -0
  205. package/dist/src/schedule/pages.js +86 -0
  206. package/dist/src/schedule/pages.js.map +1 -0
  207. package/dist/src/schedule/patch.d.ts +1 -1
  208. package/dist/src/schedule/patch.js +1 -1
  209. package/dist/src/schedule/periods.d.ts +8 -4
  210. package/dist/src/schedule/periods.d.ts.map +1 -1
  211. package/dist/src/schedule/periods.js +1 -1
  212. package/dist/src/schedule/periods.js.map +1 -1
  213. package/dist/src/schedule/record-window.d.ts +115 -22
  214. package/dist/src/schedule/record-window.d.ts.map +1 -1
  215. package/dist/src/schedule/record-window.js +140 -62
  216. package/dist/src/schedule/record-window.js.map +1 -1
  217. package/dist/src/schedule/resources.d.ts +9 -5
  218. package/dist/src/schedule/resources.d.ts.map +1 -1
  219. package/dist/src/schedule/resources.js +35 -15
  220. package/dist/src/schedule/resources.js.map +1 -1
  221. package/dist/src/schedule/session.d.ts +15 -1
  222. package/dist/src/schedule/session.d.ts.map +1 -1
  223. package/dist/src/schedule/session.js +30 -18
  224. package/dist/src/schedule/session.js.map +1 -1
  225. package/dist/src/schedule/types.d.ts +455 -37
  226. package/dist/src/schedule/types.d.ts.map +1 -1
  227. package/dist/src/schedule/types.js +79 -18
  228. package/dist/src/schedule/types.js.map +1 -1
  229. package/dist/src/schedule/window.d.ts +30 -9
  230. package/dist/src/schedule/window.d.ts.map +1 -1
  231. package/dist/src/schedule/window.js +101 -49
  232. package/dist/src/schedule/window.js.map +1 -1
  233. package/dist/src/schematic/index.d.ts +287 -0
  234. package/dist/src/schematic/index.d.ts.map +1 -0
  235. package/dist/src/schematic/index.js +216 -0
  236. package/dist/src/schematic/index.js.map +1 -0
  237. package/dist/src/schematic/kinds.d.ts +501 -0
  238. package/dist/src/schematic/kinds.d.ts.map +1 -0
  239. package/dist/src/schematic/kinds.js +1027 -0
  240. package/dist/src/schematic/kinds.js.map +1 -0
  241. package/dist/src/schematic/layers.d.ts +74 -0
  242. package/dist/src/schematic/layers.d.ts.map +1 -0
  243. package/dist/src/schematic/layers.js +99 -0
  244. package/dist/src/schematic/layers.js.map +1 -0
  245. package/dist/src/schematic/library.d.ts +202 -0
  246. package/dist/src/schematic/library.d.ts.map +1 -0
  247. package/dist/src/schematic/library.js +244 -0
  248. package/dist/src/schematic/library.js.map +1 -0
  249. package/dist/src/schematic/payload.d.ts +8310 -0
  250. package/dist/src/schematic/payload.d.ts.map +1 -0
  251. package/dist/src/schematic/payload.js +446 -0
  252. package/dist/src/schematic/payload.js.map +1 -0
  253. package/dist/src/schematic/schematic.d.ts +27 -0
  254. package/dist/src/schematic/schematic.d.ts.map +1 -0
  255. package/dist/src/schematic/schematic.js +17 -0
  256. package/dist/src/schematic/schematic.js.map +1 -0
  257. package/dist/src/schematic/shapes.d.ts +150 -0
  258. package/dist/src/schematic/shapes.d.ts.map +1 -0
  259. package/dist/src/schematic/shapes.js +171 -0
  260. package/dist/src/schematic/shapes.js.map +1 -0
  261. package/dist/src/schematic/templates.d.ts +96 -0
  262. package/dist/src/schematic/templates.d.ts.map +1 -0
  263. package/dist/src/schematic/templates.js +91 -0
  264. package/dist/src/schematic/templates.js.map +1 -0
  265. package/dist/src/schematic/types.d.ts +5766 -0
  266. package/dist/src/schematic/types.d.ts.map +1 -0
  267. package/dist/src/schematic/types.js +688 -0
  268. package/dist/src/schematic/types.js.map +1 -0
  269. package/dist/src/schematic/window.d.ts +213 -0
  270. package/dist/src/schematic/window.d.ts.map +1 -0
  271. package/dist/src/schematic/window.js +340 -0
  272. package/dist/src/schematic/window.js.map +1 -0
  273. package/dist/src/sheet/bridge.d.ts +19 -0
  274. package/dist/src/sheet/bridge.d.ts.map +1 -1
  275. package/dist/src/sheet/bridge.js +28 -21
  276. package/dist/src/sheet/bridge.js.map +1 -1
  277. package/dist/src/sheet/editing-bridge.d.ts +4 -2
  278. package/dist/src/sheet/editing-bridge.d.ts.map +1 -1
  279. package/dist/src/sheet/editing-bridge.js +8 -2
  280. package/dist/src/sheet/editing-bridge.js.map +1 -1
  281. package/dist/src/sheet/editing-types.d.ts +9 -5
  282. package/dist/src/sheet/editing-types.d.ts.map +1 -1
  283. package/dist/src/sheet/editing-types.js +9 -5
  284. package/dist/src/sheet/editing-types.js.map +1 -1
  285. package/dist/src/sheet/index.d.ts +84 -54
  286. package/dist/src/sheet/index.d.ts.map +1 -1
  287. package/dist/src/sheet/index.js +81 -53
  288. package/dist/src/sheet/index.js.map +1 -1
  289. package/dist/src/sheet/library.d.ts +13 -8
  290. package/dist/src/sheet/library.d.ts.map +1 -1
  291. package/dist/src/sheet/library.js +13 -8
  292. package/dist/src/sheet/library.js.map +1 -1
  293. package/dist/src/sheet/optimise.d.ts +69 -0
  294. package/dist/src/sheet/optimise.d.ts.map +1 -0
  295. package/dist/src/sheet/optimise.js +81 -0
  296. package/dist/src/sheet/optimise.js.map +1 -0
  297. package/dist/src/sheet/record.d.ts +1 -1
  298. package/dist/src/sheet/record.js +2 -2
  299. package/dist/src/sheet/record.js.map +1 -1
  300. package/dist/src/sheet/registers.d.ts +157 -133
  301. package/dist/src/sheet/registers.d.ts.map +1 -1
  302. package/dist/src/sheet/registers.js +157 -133
  303. package/dist/src/sheet/registers.js.map +1 -1
  304. package/dist/src/sheet/root.d.ts +6 -1
  305. package/dist/src/sheet/root.d.ts.map +1 -1
  306. package/dist/src/sheet/root.js +17 -5
  307. package/dist/src/sheet/root.js.map +1 -1
  308. package/dist/src/sheet/sheet.d.ts +696 -590
  309. package/dist/src/sheet/sheet.d.ts.map +1 -1
  310. package/dist/src/sheet/sheet.js +49 -15
  311. package/dist/src/sheet/sheet.js.map +1 -1
  312. package/dist/src/sheet/sub-rows.d.ts +106 -76
  313. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  314. package/dist/src/sheet/sub-rows.js +106 -76
  315. package/dist/src/sheet/sub-rows.js.map +1 -1
  316. package/dist/src/sheet/types.d.ts +57 -20
  317. package/dist/src/sheet/types.d.ts.map +1 -1
  318. package/dist/src/sheet/types.js +4 -8
  319. package/dist/src/sheet/types.js.map +1 -1
  320. package/dist/src/studio/builder.d.ts +3 -153
  321. package/dist/src/studio/builder.d.ts.map +1 -1
  322. package/dist/src/studio/builder.js +1 -1
  323. package/dist/src/studio/canvas.d.ts +5 -4
  324. package/dist/src/studio/canvas.d.ts.map +1 -1
  325. package/dist/src/studio/canvas.js +8 -7
  326. package/dist/src/studio/canvas.js.map +1 -1
  327. package/dist/src/studio/component.d.ts +30 -20
  328. package/dist/src/studio/component.d.ts.map +1 -1
  329. package/dist/src/studio/component.js +26 -61
  330. package/dist/src/studio/component.js.map +1 -1
  331. package/dist/src/studio/index.d.ts +2 -2
  332. package/dist/src/studio/index.d.ts.map +1 -1
  333. package/dist/src/studio/index.js +1 -1
  334. package/dist/src/studio/index.js.map +1 -1
  335. package/dist/src/studio/inspector.d.ts +10 -39
  336. package/dist/src/studio/inspector.d.ts.map +1 -1
  337. package/dist/src/studio/inspector.js +11 -31
  338. package/dist/src/studio/inspector.js.map +1 -1
  339. package/dist/src/studio/library.d.ts +3 -169
  340. package/dist/src/studio/library.d.ts.map +1 -1
  341. package/dist/src/studio/library.js +1 -1
  342. package/dist/src/studio/page.d.ts +0 -8
  343. package/dist/src/studio/page.d.ts.map +1 -1
  344. package/dist/src/studio/pages.d.ts +17 -591
  345. package/dist/src/studio/pages.d.ts.map +1 -1
  346. package/dist/src/studio/pages.js +17 -44
  347. package/dist/src/studio/pages.js.map +1 -1
  348. package/dist/src/studio/palette.d.ts +2 -7
  349. package/dist/src/studio/palette.d.ts.map +1 -1
  350. package/dist/src/studio/palette.js +4 -5
  351. package/dist/src/studio/palette.js.map +1 -1
  352. package/dist/src/studio/publish.d.ts +8 -18
  353. package/dist/src/studio/publish.d.ts.map +1 -1
  354. package/dist/src/studio/publish.js +10 -36
  355. package/dist/src/studio/publish.js.map +1 -1
  356. package/dist/src/utils/derive.d.ts +12 -12
  357. package/dist/src/utils/derive.d.ts.map +1 -1
  358. package/dist/src/utils/derive.js +5 -2
  359. package/dist/src/utils/derive.js.map +1 -1
  360. package/dist/src/utils/keyed-rows.d.ts +41 -0
  361. package/dist/src/utils/keyed-rows.d.ts.map +1 -0
  362. package/dist/src/utils/keyed-rows.js +64 -0
  363. package/dist/src/utils/keyed-rows.js.map +1 -0
  364. package/dist/src/utils/optimise.d.ts +79 -0
  365. package/dist/src/utils/optimise.d.ts.map +1 -0
  366. package/dist/src/utils/optimise.js +46 -0
  367. package/dist/src/utils/optimise.js.map +1 -0
  368. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  369. package/dist/src/utils/ordered-source.js +14 -5
  370. package/dist/src/utils/ordered-source.js.map +1 -1
  371. package/dist/test/allocation/allocation.examples.d.ts +1900 -1610
  372. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  373. package/dist/test/allocation/allocation.examples.js +179 -89
  374. package/dist/test/allocation/allocation.examples.js.map +1 -1
  375. package/dist/test/allocation/optimise.examples.d.ts +109 -0
  376. package/dist/test/allocation/optimise.examples.d.ts.map +1 -0
  377. package/dist/test/allocation/optimise.examples.js +223 -0
  378. package/dist/test/allocation/optimise.examples.js.map +1 -0
  379. package/dist/test/bind/data/data.examples.d.ts +1172 -514
  380. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  381. package/dist/test/bind/data/data.examples.js +284 -164
  382. package/dist/test/bind/data/data.examples.js.map +1 -1
  383. package/dist/test/bind/record/record.examples.d.ts +457 -428
  384. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  385. package/dist/test/bind/record/record.examples.js +41 -21
  386. package/dist/test/bind/record/record.examples.js.map +1 -1
  387. package/dist/test/calendar/calendar-records.examples.d.ts +162 -170
  388. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  389. package/dist/test/calendar/calendar-records.examples.js +20 -12
  390. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  391. package/dist/test/calendar/calendar-windows.examples.d.ts +9 -0
  392. package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -0
  393. package/dist/test/calendar/calendar-windows.examples.js +111 -0
  394. package/dist/test/calendar/calendar-windows.examples.js.map +1 -0
  395. package/dist/test/calendar/calendar.examples.d.ts +1172 -915
  396. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  397. package/dist/test/calendar/calendar.examples.js +211 -124
  398. package/dist/test/calendar/calendar.examples.js.map +1 -1
  399. package/dist/test/calendar/optimise.examples.d.ts +132 -0
  400. package/dist/test/calendar/optimise.examples.d.ts.map +1 -0
  401. package/dist/test/calendar/optimise.examples.js +75 -0
  402. package/dist/test/calendar/optimise.examples.js.map +1 -0
  403. package/dist/test/examples-package.d.ts +49 -16
  404. package/dist/test/examples-package.d.ts.map +1 -1
  405. package/dist/test/examples-package.js +138 -49
  406. package/dist/test/examples-package.js.map +1 -1
  407. package/dist/test/flowchart/flowchart.examples.d.ts +3841 -2840
  408. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  409. package/dist/test/flowchart/flowchart.examples.js +211 -121
  410. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  411. package/dist/test/plan/optimise.examples.d.ts +207 -0
  412. package/dist/test/plan/optimise.examples.d.ts.map +1 -0
  413. package/dist/test/plan/optimise.examples.js +98 -0
  414. package/dist/test/plan/optimise.examples.js.map +1 -0
  415. package/dist/test/plan/plan-events.examples.d.ts +4055 -3279
  416. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  417. package/dist/test/plan/plan-events.examples.js +492 -319
  418. package/dist/test/plan/plan-events.examples.js.map +1 -1
  419. package/dist/test/plan/plan-nested.examples.d.ts +1829 -0
  420. package/dist/test/plan/plan-nested.examples.d.ts.map +1 -0
  421. package/dist/test/plan/plan-nested.examples.js +321 -0
  422. package/dist/test/plan/plan-nested.examples.js.map +1 -0
  423. package/dist/test/plan/plan-records.examples.d.ts +391 -244
  424. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  425. package/dist/test/plan/plan-records.examples.js +186 -65
  426. package/dist/test/plan/plan-records.examples.js.map +1 -1
  427. package/dist/test/plan/plan-windows.examples.d.ts +1978 -803
  428. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  429. package/dist/test/plan/plan-windows.examples.js +269 -99
  430. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  431. package/dist/test/plan/plan.examples.d.ts +2238 -5726
  432. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  433. package/dist/test/plan/plan.examples.js +846 -973
  434. package/dist/test/plan/plan.examples.js.map +1 -1
  435. package/dist/test/query/query.examples.d.ts +5221 -3005
  436. package/dist/test/query/query.examples.d.ts.map +1 -1
  437. package/dist/test/query/query.examples.js +169 -118
  438. package/dist/test/query/query.examples.js.map +1 -1
  439. package/dist/test/roster/domain.examples.d.ts +804 -0
  440. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  441. package/dist/test/roster/domain.examples.js +3 -3
  442. package/dist/test/roster/domain.examples.js.map +1 -1
  443. package/dist/test/roster/optimise.examples.d.ts +485 -0
  444. package/dist/test/roster/optimise.examples.d.ts.map +1 -0
  445. package/dist/test/roster/optimise.examples.js +155 -0
  446. package/dist/test/roster/optimise.examples.js.map +1 -0
  447. package/dist/test/roster/roster-records.examples.d.ts +364 -404
  448. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  449. package/dist/test/roster/roster-records.examples.js +40 -26
  450. package/dist/test/roster/roster-records.examples.js.map +1 -1
  451. package/dist/test/roster/roster.examples.d.ts +5091 -1424
  452. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  453. package/dist/test/roster/roster.examples.js +255 -109
  454. package/dist/test/roster/roster.examples.js.map +1 -1
  455. package/dist/test/roster/warehouse.d.ts +150 -7
  456. package/dist/test/roster/warehouse.d.ts.map +1 -1
  457. package/dist/test/roster/warehouse.js +36 -11
  458. package/dist/test/roster/warehouse.js.map +1 -1
  459. package/dist/test/schedule/schedule.examples.d.ts +2646 -2473
  460. package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
  461. package/dist/test/schedule/schedule.examples.js +144 -88
  462. package/dist/test/schedule/schedule.examples.js.map +1 -1
  463. package/dist/test/schematic/schematic-records.examples.d.ts +454 -0
  464. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
  465. package/dist/test/schematic/schematic-records.examples.js +219 -0
  466. package/dist/test/schematic/schematic-records.examples.js.map +1 -0
  467. package/dist/test/schematic/schematic.examples.d.ts +2640 -0
  468. package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
  469. package/dist/test/schematic/schematic.examples.js +559 -0
  470. package/dist/test/schematic/schematic.examples.js.map +1 -0
  471. package/dist/test/sheet/optimise.examples.d.ts +184 -0
  472. package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
  473. package/dist/test/sheet/optimise.examples.js +79 -0
  474. package/dist/test/sheet/optimise.examples.js.map +1 -0
  475. package/dist/test/sheet/sheet-records.examples.d.ts +208 -356
  476. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  477. package/dist/test/sheet/sheet-records.examples.js +66 -29
  478. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  479. package/dist/test/sheet/sheet.examples.d.ts +3650 -3377
  480. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  481. package/dist/test/sheet/sheet.examples.js +406 -296
  482. package/dist/test/sheet/sheet.examples.js.map +1 -1
  483. package/dist/test/studio/component.examples.js +2 -2
  484. package/dist/test/studio/component.examples.js.map +1 -1
  485. package/dist/test/studio/page.examples.js +6 -6
  486. package/dist/test/studio/page.examples.js.map +1 -1
  487. package/dist/test/studio/studio.examples.d.ts +2329 -873
  488. package/dist/test/studio/studio.examples.d.ts.map +1 -1
  489. package/dist/test/studio/studio.examples.js +155 -107
  490. package/dist/test/studio/studio.examples.js.map +1 -1
  491. package/package.json +15 -11
@@ -0,0 +1,501 @@
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
+ * The Schematic's kinds (#1386, #1401, `Schematic Builder Spec.md` §1, §4.1–§4.5):
7
+ * `Schematic.items`, `zones`, `links`, `nets` and `details`. Each takes the
8
+ * app's own record and maps its fields to the Schematic's roles, as Schedule's
9
+ * kinds do (#1365): the Schematic stores nothing in a shape of its own.
10
+ *
11
+ * - **A role is a field of the app's row, named** (SC1). Its type is checked
12
+ * against the role when the code compiles, and again at build: a field the
13
+ * row lacks, or one of another type, is refused, naming the role, the field
14
+ * and the field's type. A role the app computes — a sub-label, a meter, a
15
+ * tone — is an accessor `(row, key) => …`, reified once and called per row.
16
+ * So is a role whose value is one of the Schematic's own types — a
17
+ * footprint, a zone's shape, a pattern, a style: the accessor builds it with
18
+ * the shape helpers from the row's own fields, so the app's record holds
19
+ * only its own types (D35).
20
+ * - **A gesture writes only the fields its roles map** (SC2): a move writes
21
+ * an item's `x` and `y`, a Connect a link's `from` and `to`, a net's Shift
22
+ * session its `sources` and `destinations`, and every other field of the row
23
+ * reads back as it was.
24
+ * - **Geometry is drawn about its entity's anchor** (D22, SC35): a footprint
25
+ * needs the item's box, `width` and `height`, or it is refused.
26
+ * - **How a kind is bound follows how it is read** (§1, rule 4; SC33):
27
+ * editable bound `Record.bind(record), its record declaring patch: mutation.patch()` — read
28
+ * whole, or through its source of the slice with `entries:
29
+ * Data.bindPaged(record)` beside it — and read only bound `Data.bind(record)`,
30
+ * read whole, or `Data.bindPaged(record)`, read through its source. Every
31
+ * other form is refused, naming the one to use. A kind's details are bound
32
+ * as their kind is read.
33
+ *
34
+ * A kind closes the record behind East functions over beast2 bytes (§4.8): its
35
+ * stored rows a read holds, each one's roles beside its bytes; a drafted row's
36
+ * roles; a gesture's write and a new row; the fields an author's card sets,
37
+ * any field at any depth (#1390); the shared editing session over the
38
+ * record with its patch door; the record read by key; its history, its form,
39
+ * its own inspector and the app's check. So the payload is one type whatever
40
+ * the rows hold, and the renderer needs no row type. A kind's record is keyed
41
+ * by String: its entities are named by their keys, and a link's ends hold
42
+ * them.
43
+ *
44
+ * @packageDocumentation
45
+ */
46
+ import { ArrayType, DictType, FloatType, OptionType, SetType, StringType, StructType, type EastType, type ExprType, type FunctionType, type NullType, type SubtypeExprOrValue, type VariantType } from "@elaraai/east";
47
+ import type { UIComponentType } from "@elaraai/east-ui";
48
+ import { EditingReadinessType, type FieldHints } from "@elaraai/east-ui/internal";
49
+ import type { ScheduleResourceOf, ScheduleStatusCasesOf, ScheduleStatusField } from "../schedule/events.js";
50
+ import { type FieldName, type FieldsOf } from "../schedule/fields.js";
51
+ import { type SchematicTemplates } from "./templates.js";
52
+ import { SchematicKindDetailsType, SchematicGeometryType, SchematicItemKindType, SchematicLinkKindType, SchematicLinkStyleType, SchematicMeterType, SchematicNetKindType, SchematicPointType, SchematicRouteType, SchematicToneType, SchematicZoneKindType, SchematicZonePatternType } from "./types.js";
53
+ import { type SchematicKindPart } from "./window.js";
54
+ /** A String field of the row: a label, a layer. */
55
+ export type SchematicStringField<R extends StructType> = FieldsOf<R, StringType>;
56
+ /** A Float field of the row: a box's side, a zone's corner. */
57
+ export type SchematicFloatField<R extends StructType> = FieldsOf<R, FloatType>;
58
+ /** A Float field, or an Option of one: an item's `x` and `y`, whose Options give its kind a backlog. */
59
+ export type SchematicPlaceField<R extends StructType> = FieldsOf<R, FloatType | OptionType<FloatType>>;
60
+ /** An `Array` of `{ x, y }` Floats field (`Schematic.Types.Point`): a link's or a net's waypoints, the app's own points. */
61
+ export type SchematicViaField<R extends StructType> = FieldsOf<R, ArrayType<SchematicPointType>>;
62
+ /** A `Set<String>` or `Array<String>` field: a net's side, its items' keys. */
63
+ export type SchematicMembersField<R extends StructType> = FieldsOf<R, SetType<StringType> | ArrayType<StringType>>;
64
+ /** Whether a variant's cases are an Option's. */
65
+ type IsOption<C> = "none" extends keyof C ? ("some" extends keyof C ? true : false) : false;
66
+ /** Whether every case of a variant holds a String. */
67
+ type StringCases<C> = [C[keyof C]] extends [StringType] ? true : false;
68
+ /**
69
+ * A field naming a link's end: a String holding a key of one item slot, or a
70
+ * variant of String cases holding a key of the item slot its case names —
71
+ * never an Option: a link has both its ends.
72
+ */
73
+ export type SchematicEndField<R extends StructType> = {
74
+ [F in FieldName<R>]: R["fields"][F] extends StringType ? F : R["fields"][F] extends VariantType<infer C> ? (IsOption<C> extends true ? never : StringCases<C> extends true ? F : never) : never;
75
+ }[FieldName<R>];
76
+ /** An accessor of a row and its key: what a computed role is. */
77
+ type Accessor<R extends EastType, T extends EastType> = (row: ExprType<R>, key: ExprType<StringType>) => SubtypeExprOrValue<T>;
78
+ /** A kind's own Details: an East function over the row and its writer, as the Sheet's and the Flowchart's are. */
79
+ type RowInspector<R extends StructType> = SubtypeExprOrValue<FunctionType<[R, FunctionType<[R], NullType>], UIComponentType>>;
80
+ /** The status a variant field shows: the field, and a Status per case. */
81
+ export interface SchematicStatusConfig<R extends StructType, SF extends string> {
82
+ /** The status field: a variant, not an Option. */
83
+ field: SF;
84
+ /** One Status per case: its words, its tone and whether it is an open ring. */
85
+ cases: SubtypeExprOrValue<ScheduleStatusCasesOf<R["fields"][SF]>>;
86
+ }
87
+ /** A template's values: the row's fields less those a drop places. */
88
+ export type SchematicValuesOf<R extends StructType, Placed extends string> = StructType<{
89
+ [F in Exclude<FieldName<R>, Placed>]: R["fields"][F];
90
+ }>;
91
+ /**
92
+ * What a kind's record is, bound (§1, rule 4): `Record.bind`'s or
93
+ * `Data.bind`'s handle, read whole, or `Data.bindPaged`'s, read by key — each
94
+ * over a `Dict<String, R>`, its row type `R` inferred from the handle.
95
+ *
96
+ * @typeParam R - The record's row type
97
+ */
98
+ export type SchematicRecord<R extends StructType> = {
99
+ readonly read: (...args: never[]) => ExprType<DictType<StringType, R>>;
100
+ readonly binding: unknown;
101
+ } | {
102
+ readonly page: (...args: never[]) => ExprType<OptionType<DictType<StringType, R>>>;
103
+ readonly revision: unknown;
104
+ };
105
+ /**
106
+ * What every kind and every details record declare beside their roles, each
107
+ * typed over the record's row, as Schedule's kinds' are (#1391).
108
+ *
109
+ * @typeParam R - The record's row type
110
+ */
111
+ interface RecordSide<R extends StructType = StructType> {
112
+ /** A paged read of the record's own entries, for an editable record read through its source. */
113
+ entries?: unknown;
114
+ /** Hints for the inspector's form over the fields no role writes (`Fields`). */
115
+ fields?: FieldHints<R["fields"]>;
116
+ /** The app's check on a drafted row, over the row and its key: a refusal holds Save, naming the row and its field. */
117
+ ready?: (row: ExprType<R>, key: ExprType<StringType>) => SubtypeExprOrValue<typeof EditingReadinessType>;
118
+ /** The kind's own Details, in place of its form: an East function over the row and its writer. */
119
+ inspector?: RowInspector<R>;
120
+ }
121
+ /** The key a Schematic's declarations carry their sort under. */
122
+ export declare const SCHEMATIC_DEF: unique symbol;
123
+ /**
124
+ * A kind's details (§4.5): a record of the app's keyed as its kind is, which
125
+ * the inspector shows beside the row and the cards on screen draw.
126
+ *
127
+ * @typeParam R - The details record's row type
128
+ * @typeParam SF - Its status field, when it gives one
129
+ */
130
+ export interface SchematicDetailsConfig<R extends StructType, SF extends string = never> {
131
+ /** A variant field shown as the card's status, a Status per case. */
132
+ status?: SchematicStatusConfig<R, SF>;
133
+ /** The card's bar. */
134
+ meter?: Accessor<R, typeof SchematicMeterType>;
135
+ /** The card's figure. */
136
+ metric?: Accessor<R, OptionType<StringType>>;
137
+ /** The card's second line. */
138
+ sublabel?: Accessor<R, StringType>;
139
+ /** Hints for the inspector's form over the details row (`Fields`). */
140
+ fields?: FieldHints<R["fields"]>;
141
+ /** The details' own Details in the inspector, in place of their form. */
142
+ inspector?: RowInspector<R>;
143
+ /** A paged read of the details record's own entries, when they are editable and their kind is read through its source. */
144
+ entries?: unknown;
145
+ }
146
+ /** A kind's details, declared: what a kind's `details` takes. */
147
+ export interface SchematicDetails {
148
+ /** What it is. */
149
+ readonly [SCHEMATIC_DEF]: "details";
150
+ /** The card roles it gives: refused when its kind gives them too. */
151
+ readonly roles: readonly string[];
152
+ /**
153
+ * The details on the wire, beside their kind.
154
+ *
155
+ * @param kind - The kind, as a refusal names it
156
+ * @param throughSource - Whether the kind is read through its source of the slice
157
+ * @returns The details, closed
158
+ * @throws {Error} When they are bound in a form their kind's read does not take (SC33), naming the form to use
159
+ */
160
+ build(kind: string, throughSource: boolean): ExprType<typeof SchematicKindDetailsType>;
161
+ }
162
+ /**
163
+ * Declares a kind's details (§4.5): a record of the app's keyed as its kind
164
+ * is — a rack's power, a cooling unit's alarm — which the inspector shows
165
+ * beside the row and the cards on screen draw: its status, its bar, its figure
166
+ * and its second line. A kind's row with no details row shows none, and its
167
+ * card draws no bar.
168
+ *
169
+ * @typeParam R - The details record's row type
170
+ * @typeParam SF - Its status field
171
+ * @param record - The details record, bound as its kind is read: read whole beside a kind read whole —
172
+ * `Data.bind(record)`, or `Record.bind(record)`; by key beside a kind read through its source —
173
+ * `Data.bindPaged(record)`, or `Record.bind(record)` with `entries`
174
+ * @param config - Its card roles, its form, its own Details and its `entries`
175
+ * @returns The details, for a kind's `details`
176
+ * @throws {Error} Naming the role or the binding: a role naming a field the row lacks or of another type, an accessor
177
+ * returning another type, and a record that is no binding of a record of structs keyed by String
178
+ */
179
+ export declare function schematicDetails<R extends StructType, SF extends ScheduleStatusField<R> = never>(record: SchematicRecord<R>, config: SchematicDetailsConfig<R, SF>): SchematicDetails;
180
+ /**
181
+ * One kind of placed item (§4.1): racks, cooling units, power distribution
182
+ * units.
183
+ *
184
+ * @typeParam R - The record's row type
185
+ * @typeParam X - The `x` field
186
+ * @typeParam Y - The `y` field
187
+ * @typeParam SF - The status field, when it has one
188
+ */
189
+ export interface SchematicItemsConfig<R extends StructType, X extends string, Y extends string, SF extends string = never> extends RecordSide<R> {
190
+ /** The kind's name: in the library, the inspector and the rail. */
191
+ name: string;
192
+ /** Its Font Awesome solid icon, and its cards' — or an accessor giving each card's. */
193
+ icon: string | Accessor<R, StringType>;
194
+ /** The Float field an item's centre's x is — or an Option of one, with `y` too, giving the kind a backlog. */
195
+ x: X;
196
+ /** The field its centre's y is: of `x`'s type. */
197
+ y: Y;
198
+ /** The String field, or an accessor, its card's name is. */
199
+ label: SchematicStringField<R> | Accessor<R, StringType>;
200
+ /** The Float field its box's width is, about its centre: its card's width, and the bounds its footprint lies in. */
201
+ width?: SchematicFloatField<R>;
202
+ /** The Float field its box's height is. */
203
+ height?: SchematicFloatField<R>;
204
+ /**
205
+ * Its footprint, drawn about its centre: an accessor building it from the row's own fields with `Schematic.circle`,
206
+ * `polygon`, `polyline` or `rect` — `(unit) => some(Schematic.circle(unit.radius))`. Needs `width` and `height`.
207
+ */
208
+ footprint?: Accessor<R, OptionType<typeof SchematicGeometryType>>;
209
+ /** The String field naming the layer it is on. */
210
+ layer?: SchematicStringField<R>;
211
+ /** Its card's second line. */
212
+ sublabel?: Accessor<R, StringType>;
213
+ /** Its card's figure. */
214
+ metric?: Accessor<R, OptionType<StringType>>;
215
+ /** Its card's bar. */
216
+ meter?: Accessor<R, typeof SchematicMeterType>;
217
+ /** A variant field shown as its status, a Status per case. */
218
+ status?: SchematicStatusConfig<R, SF>;
219
+ /** An override of its status colour. */
220
+ tone?: Accessor<R, OptionType<typeof SchematicToneType>>;
221
+ /** An override of its status colour: a theme colour token (`status.warn`, `heat.3`). */
222
+ color?: Accessor<R, OptionType<StringType>>;
223
+ /** Its footprint's stroke. */
224
+ weight?: Accessor<R, OptionType<FloatType>>;
225
+ /** Its footprint's fill. */
226
+ fillOpacity?: Accessor<R, OptionType<FloatType>>;
227
+ /** Its details: a record keyed as this one is. */
228
+ details?: SchematicDetails;
229
+ /** Its templates: `Schematic.templates(rows, { name, values, source })`, each giving every field but `x` and `y`. */
230
+ templates?: SchematicTemplates<SchematicValuesOf<R, X | Y>>;
231
+ /** Hints for the inspector's form over the fields no role writes (`Fields`). */
232
+ fields?: FieldHints<R["fields"]>;
233
+ /** Its own Details in the inspector, in place of its form. */
234
+ inspector?: RowInspector<R>;
235
+ }
236
+ /** A kind, declared: what the Schematic's `items`, `zones`, `links` or `nets` take, by slot. */
237
+ interface KindDeclaration<D extends string, W extends EastType> {
238
+ /** What it is. */
239
+ readonly [SCHEMATIC_DEF]: D;
240
+ /** Its record's row type. */
241
+ readonly rowType: StructType;
242
+ /** Its name. */
243
+ readonly name: string;
244
+ /** Whether it has templates. */
245
+ readonly hasTemplates: boolean;
246
+ /** The slice's source its templates list names; `undefined` for none, or for a list naming none, which the Schematic refuses. */
247
+ readonly templatesSource: string | undefined;
248
+ /**
249
+ * The kind on the wire, under its slot.
250
+ *
251
+ * @param slot - The Schematic's slot name for it
252
+ * @param part - Its source of the slice, the one named after its slot, when the slice has one
253
+ * @param every - Whether, read through its source, it reads every row — under `narrowed="dim"`, which draws what the
254
+ * narrowing leaves out as context (§10.3) — rather than what its narrowing holds
255
+ * @returns The kind, closed
256
+ * @throws {Error} When it is bound in a form its read does not take (SC33), naming the form to use, or its own
257
+ * Details are of another type than its row's
258
+ */
259
+ build(slot: string, part?: SchematicKindPart, every?: boolean): ExprType<W>;
260
+ }
261
+ /** An item kind, declared. */
262
+ export interface SchematicItems extends KindDeclaration<"items", typeof SchematicItemKindType> {
263
+ /** Whether its `x` and `y` are Options: its rows with no position are its backlog. */
264
+ readonly backlog: boolean;
265
+ }
266
+ /**
267
+ * Declares an item kind (see the module docs and §4.1).
268
+ *
269
+ * @typeParam R - The record's row type
270
+ * @typeParam X - The `x` field
271
+ * @typeParam Y - The `y` field
272
+ * @typeParam SF - The status field, when it has one
273
+ * @param record - The app's record of items: `Record.bind(record), its record declaring patch: mutation.patch()` to edit it, or `Data.bind(record)`
274
+ * or `Data.bindPaged(record)` to read it only (§1, rule 4)
275
+ * @param config - Its name and icon, the fields its roles are, its accessors, and its details, templates, form, Details and check
276
+ * @returns The kind, for the Schematic's `items`, by slot
277
+ * @throws {Error} Naming the role or the binding (SC1, SC33, SC35): a role naming a field the row lacks, or one of another
278
+ * type; `x` and `y` of different types; an accessor returning another type; a `footprint` naming a field rather than
279
+ * an accessor building the shape (D35), or without `width` and `height`; a status, a meter, a metric or a second line given both here and by its details; templates written in
280
+ * the code, or giving other fields than every field but `x` and `y`; and a record that is no binding of a record of
281
+ * structs keyed by String, a `Record.bind` without its patch door, or `entries` beside a read-only binding
282
+ */
283
+ export declare function schematicItems<R extends StructType, X extends SchematicPlaceField<R>, Y extends SchematicPlaceField<R>, SF extends ScheduleStatusField<R> = never>(record: SchematicRecord<R>, config: SchematicItemsConfig<R, X, Y, SF>): SchematicItems;
284
+ /**
285
+ * One kind of zone (§4.2): halls, cages, aisles — drawn under the items,
286
+ * outlined or hatched. Zones take no gesture on the canvas: their fields are
287
+ * edited through the inspector, when the kind is bound with its patch door.
288
+ *
289
+ * @typeParam R - The record's row type
290
+ */
291
+ export interface SchematicZonesConfig<R extends StructType> extends RecordSide<R> {
292
+ /** The kind's name. */
293
+ name: string;
294
+ /** Its Font Awesome solid icon. */
295
+ icon: string;
296
+ /** The Float field its box's left edge is. */
297
+ x: SchematicFloatField<R>;
298
+ /** The Float field its box's top edge is. */
299
+ y: SchematicFloatField<R>;
300
+ /** The Float field its box's width is. */
301
+ width: SchematicFloatField<R>;
302
+ /** The Float field its box's height is. */
303
+ height: SchematicFloatField<R>;
304
+ /** The String field, or an accessor, the eyebrow on its boundary is. */
305
+ label: SchematicStringField<R> | Accessor<R, StringType>;
306
+ /** Outline (the default) or hatch: a hatched zone is an annotation, holding no items and taking no tap. */
307
+ pattern?: Accessor<R, typeof SchematicZonePatternType>;
308
+ /**
309
+ * Its drawn shape, about its box's centre: an accessor building it from the row's own fields with `Schematic.circle`,
310
+ * `polygon`, `polyline` or `rect` — `(area) => some(Schematic.polygon(area.corners))`.
311
+ */
312
+ geometry?: Accessor<R, OptionType<typeof SchematicGeometryType>>;
313
+ /** The String field naming the layer it is on. */
314
+ layer?: SchematicStringField<R>;
315
+ /** An override of its pattern's tone. */
316
+ tone?: Accessor<R, OptionType<typeof SchematicToneType>>;
317
+ /** An override of its pattern's tone: a theme colour token. */
318
+ color?: Accessor<R, OptionType<StringType>>;
319
+ /** Its fill. */
320
+ fillOpacity?: Accessor<R, OptionType<FloatType>>;
321
+ /** Its stroke. */
322
+ weight?: Accessor<R, OptionType<FloatType>>;
323
+ /** Its details: a record keyed as this one is. */
324
+ details?: SchematicDetails;
325
+ /** Hints for the inspector's form over the fields no role writes. */
326
+ fields?: FieldHints<R["fields"]>;
327
+ /** Its own Details in the inspector, in place of its form. */
328
+ inspector?: RowInspector<R>;
329
+ }
330
+ /** A zone kind, declared. */
331
+ export type SchematicZones = KindDeclaration<"zones", typeof SchematicZoneKindType>;
332
+ /**
333
+ * Declares a zone kind (§4.2).
334
+ *
335
+ * @typeParam R - The record's row type
336
+ * @param record - The app's record of zones, bound as §1, rule 4 says
337
+ * @param config - Its name and icon, the fields its box and label are, its pattern and shape, and its details, form, Details and check
338
+ * @returns The kind, for the Schematic's `zones`, by slot
339
+ * @throws {Error} Naming the role or the binding, as `Schematic.items` does, and a `geometry` naming a field rather than an
340
+ * accessor building the shape (D35)
341
+ */
342
+ export declare function schematicZones<R extends StructType>(record: SchematicRecord<R>, config: SchematicZonesConfig<R>): SchematicZones;
343
+ /**
344
+ * A link's end: the field holding the key of the item it joins, and the item
345
+ * slot those keys are of — or, for a variant field, a slot per case.
346
+ *
347
+ * @typeParam R - The record's row type
348
+ * @typeParam F - The field
349
+ */
350
+ export interface SchematicEnd<R extends StructType, F extends string> {
351
+ /** The field: a String, or a variant of String cases. */
352
+ field: F;
353
+ /** The item slot its keys are of: one for a String field, or one per case. */
354
+ of: ScheduleResourceOf<R["fields"][F]>;
355
+ }
356
+ /**
357
+ * One kind of link (§4.3): fibre runs, power feeds, each between two items.
358
+ *
359
+ * @typeParam R - The record's row type
360
+ * @typeParam FF - The `from` field
361
+ * @typeParam TF - The `to` field
362
+ */
363
+ export interface SchematicLinksConfig<R extends StructType, FF extends string, TF extends string> extends RecordSide<R> {
364
+ /** The kind's name: in the Connect tool's menu, the library and the inspector. */
365
+ name: string;
366
+ /** Its Font Awesome solid icon. */
367
+ icon: string;
368
+ /** The item it runs from. */
369
+ from: SchematicEnd<R, FF>;
370
+ /** The item it runs to. */
371
+ to: SchematicEnd<R, TF>;
372
+ /** The field its waypoints are: an `Array` of `{ x, y }` Floats, the app's own points. */
373
+ via?: SchematicViaField<R>;
374
+ /** Its caption, on a knockout at its path's middle (#1403). */
375
+ label?: Accessor<R, OptionType<StringType>>;
376
+ /** The figure after its label. */
377
+ metric?: Accessor<R, OptionType<StringType>>;
378
+ /** Solid (the default) or dashed, its tone and its weight. */
379
+ style?: Accessor<R, typeof SchematicLinkStyleType>;
380
+ /** Orthogonal (the default) or direct. */
381
+ route?: Accessor<R, typeof SchematicRouteType>;
382
+ /** The String field naming the layer it is on. */
383
+ layer?: SchematicStringField<R>;
384
+ /** Its details: a record keyed as this one is. */
385
+ details?: SchematicDetails;
386
+ /** Its templates, each giving every field but `from` and `to`: dropped on a link, one retypes it. */
387
+ templates?: SchematicTemplates<SchematicValuesOf<R, FF | TF>>;
388
+ /** Hints for the inspector's form over the fields no role writes. */
389
+ fields?: FieldHints<R["fields"]>;
390
+ /** Its own Details in the inspector, in place of its form. */
391
+ inspector?: RowInspector<R>;
392
+ }
393
+ /** A link kind, declared. */
394
+ export interface SchematicLinks extends KindDeclaration<"links", typeof SchematicLinkKindType> {
395
+ /** The item slots each end holds keys of. */
396
+ readonly ends: {
397
+ readonly from: readonly string[];
398
+ readonly to: readonly string[];
399
+ };
400
+ }
401
+ /**
402
+ * Declares a link kind (§4.3).
403
+ *
404
+ * @typeParam R - The record's row type
405
+ * @typeParam FF - The `from` field
406
+ * @typeParam TF - The `to` field
407
+ * @param record - The app's record of links, bound as §1, rule 4 says
408
+ * @param config - Its name and icon, its ends, its drawing roles, and its details, templates, form, Details and check
409
+ * @returns The kind, for the Schematic's `links`, by slot
410
+ * @throws {Error} Naming the role or the binding, as `Schematic.items` does: an end of neither a String field nor a
411
+ * variant of String cases — an Option among them, a link having both its ends — or whose `of` names no item slot,
412
+ * and `from` and `to` naming one field
413
+ */
414
+ export declare function schematicLinks<R extends StructType, FF extends SchematicEndField<R>, TF extends SchematicEndField<R>>(record: SchematicRecord<R>, config: SchematicLinksConfig<R, FF, TF>): SchematicLinks;
415
+ /**
416
+ * A net's side: the `Set<String>` or `Array<String>` field holding its items'
417
+ * keys, and the item slot those keys are of.
418
+ *
419
+ * @typeParam R - The record's row type
420
+ */
421
+ export interface SchematicSide<R extends StructType> {
422
+ /** The field: a Set or an Array of String keys. */
423
+ field: SchematicMembersField<R>;
424
+ /** The item slot its keys are of. */
425
+ of: string;
426
+ }
427
+ /**
428
+ * One kind of net (§4.4): a trunk joining many items to many, as a power
429
+ * distribution unit feeds a row of racks.
430
+ *
431
+ * @typeParam R - The record's row type
432
+ * @typeParam SRC - The `sources` field
433
+ * @typeParam DST - The `destinations` field
434
+ */
435
+ export interface SchematicNetsConfig<R extends StructType, SRC extends string, DST extends string> extends RecordSide<R> {
436
+ /** The kind's name. */
437
+ name: string;
438
+ /** Its Font Awesome solid icon. */
439
+ icon: string;
440
+ /** Its feeding side. */
441
+ sources: {
442
+ field: SRC;
443
+ of: string;
444
+ };
445
+ /** Its fed side. */
446
+ destinations: {
447
+ field: DST;
448
+ of: string;
449
+ };
450
+ /** The field its trunk's waypoints are: an `Array` of `{ x, y }` Floats, the app's own points. */
451
+ via?: SchematicViaField<R>;
452
+ /** Its caption, on a knockout at its trunk's middle (#1403). */
453
+ label?: Accessor<R, OptionType<StringType>>;
454
+ /** The figure after its label. */
455
+ metric?: Accessor<R, OptionType<StringType>>;
456
+ /** Solid (the default) or dashed, its tone and its weight. */
457
+ style?: Accessor<R, typeof SchematicLinkStyleType>;
458
+ /** Its trunk: orthogonal (the default) or direct. */
459
+ route?: Accessor<R, typeof SchematicRouteType>;
460
+ /** The String field naming the layer it is on. */
461
+ layer?: SchematicStringField<R>;
462
+ /** Its details: a record keyed as this one is. */
463
+ details?: SchematicDetails;
464
+ /** Its templates, each giving every field but its sides. */
465
+ templates?: SchematicTemplates<SchematicValuesOf<R, SRC | DST>>;
466
+ /** Hints for the inspector's form over the fields no role writes. */
467
+ fields?: FieldHints<R["fields"]>;
468
+ /** Its own Details in the inspector, in place of its form. */
469
+ inspector?: RowInspector<R>;
470
+ }
471
+ /** A net kind, declared. */
472
+ export interface SchematicNets extends KindDeclaration<"nets", typeof SchematicNetKindType> {
473
+ /** The item slot each side holds keys of. */
474
+ readonly sides: {
475
+ readonly sources: string;
476
+ readonly destinations: string;
477
+ };
478
+ }
479
+ /**
480
+ * Declares a net kind (§4.4).
481
+ *
482
+ * @typeParam R - The record's row type
483
+ * @typeParam SRC - The `sources` field
484
+ * @typeParam DST - The `destinations` field
485
+ * @param record - The app's record of nets, bound as §1, rule 4 says
486
+ * @param config - Its name and icon, its sides, its drawing roles, and its details, templates, form, Details and check
487
+ * @returns The kind, for the Schematic's `nets`, by slot
488
+ * @throws {Error} Naming the role or the binding, as `Schematic.items` does: a side of neither a Set nor an Array of
489
+ * String, whose `of` names no item slot, and both sides naming one field
490
+ */
491
+ export declare function schematicNets<R extends StructType, SRC extends SchematicMembersField<R>, DST extends SchematicMembersField<R>>(record: SchematicRecord<R>, config: SchematicNetsConfig<R, SRC, DST>): SchematicNets;
492
+ /**
493
+ * Whether something is a Schematic kind of the sort given.
494
+ *
495
+ * @param value - What a slot holds
496
+ * @param sort - The sort the slot takes
497
+ * @returns Whether it is one
498
+ */
499
+ export declare function isSchematicKind(value: unknown, sort: "items" | "zones" | "links" | "nets"): boolean;
500
+ export {};
501
+ //# sourceMappingURL=kinds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../../../src/schematic/kinds.ts"],"names":[],"mappings":"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"}