@fieldia/designer 0.11.0 → 0.13.0

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 (379) hide show
  1. package/package.json +4 -4
  2. package/src/lib/canvas-form.js +9 -0
  3. package/src/lib/canvas-form.js.map +1 -1
  4. package/src/lib/canvas-form.mjs +9 -0
  5. package/src/lib/canvas-form.mjs.map +1 -1
  6. package/src/lib/canvas-header.d.mts +4 -1
  7. package/src/lib/canvas-header.d.ts +4 -1
  8. package/src/lib/canvas-header.js +56 -17
  9. package/src/lib/canvas-header.js.map +1 -1
  10. package/src/lib/canvas-header.mjs +56 -17
  11. package/src/lib/canvas-header.mjs.map +1 -1
  12. package/src/lib/choice-commands.d.mts +5 -1
  13. package/src/lib/choice-commands.d.ts +5 -1
  14. package/src/lib/choice-commands.js +41 -0
  15. package/src/lib/choice-commands.js.map +1 -1
  16. package/src/lib/choice-commands.mjs +41 -0
  17. package/src/lib/choice-commands.mjs.map +1 -1
  18. package/src/lib/clipboard-names.js +21 -4
  19. package/src/lib/clipboard-names.js.map +1 -1
  20. package/src/lib/clipboard-names.mjs +21 -4
  21. package/src/lib/clipboard-names.mjs.map +1 -1
  22. package/src/lib/conditions.d.mts +14 -2
  23. package/src/lib/conditions.d.ts +14 -2
  24. package/src/lib/conditions.js +25 -2
  25. package/src/lib/conditions.js.map +1 -1
  26. package/src/lib/conditions.mjs +23 -2
  27. package/src/lib/conditions.mjs.map +1 -1
  28. package/src/lib/designer.d.mts +20 -15
  29. package/src/lib/designer.d.ts +20 -15
  30. package/src/lib/designer.js +67 -3
  31. package/src/lib/designer.js.map +1 -1
  32. package/src/lib/designer.mjs +68 -4
  33. package/src/lib/designer.mjs.map +1 -1
  34. package/src/lib/header-commands.d.mts +69 -11
  35. package/src/lib/header-commands.d.ts +69 -11
  36. package/src/lib/header-commands.js +299 -20
  37. package/src/lib/header-commands.js.map +1 -1
  38. package/src/lib/header-commands.mjs +297 -20
  39. package/src/lib/header-commands.mjs.map +1 -1
  40. package/src/lib/header-properties.js +171 -20
  41. package/src/lib/header-properties.js.map +1 -1
  42. package/src/lib/header-properties.mjs +172 -21
  43. package/src/lib/header-properties.mjs.map +1 -1
  44. package/src/lib/hotkey-setting.d.mts +8 -0
  45. package/src/lib/hotkey-setting.d.ts +8 -0
  46. package/src/lib/hotkey-setting.js +25 -0
  47. package/src/lib/hotkey-setting.js.map +1 -0
  48. package/src/lib/hotkey-setting.mjs +20 -0
  49. package/src/lib/hotkey-setting.mjs.map +1 -0
  50. package/src/lib/icons.js +15 -0
  51. package/src/lib/icons.js.map +1 -1
  52. package/src/lib/icons.mjs +15 -0
  53. package/src/lib/icons.mjs.map +1 -1
  54. package/src/lib/inline-settings.js +32 -4
  55. package/src/lib/inline-settings.js.map +1 -1
  56. package/src/lib/inline-settings.mjs +33 -5
  57. package/src/lib/inline-settings.mjs.map +1 -1
  58. package/src/lib/input-changes.js +12 -0
  59. package/src/lib/input-changes.js.map +1 -1
  60. package/src/lib/input-changes.mjs +12 -0
  61. package/src/lib/input-changes.mjs.map +1 -1
  62. package/src/lib/kind-settings-choices.js +30 -0
  63. package/src/lib/kind-settings-choices.js.map +1 -1
  64. package/src/lib/kind-settings-choices.mjs +30 -0
  65. package/src/lib/kind-settings-choices.mjs.map +1 -1
  66. package/src/lib/kind-settings-inputs.js +80 -0
  67. package/src/lib/kind-settings-inputs.js.map +1 -1
  68. package/src/lib/kind-settings-inputs.mjs +80 -0
  69. package/src/lib/kind-settings-inputs.mjs.map +1 -1
  70. package/src/lib/kinds.d.mts +2 -0
  71. package/src/lib/kinds.d.ts +2 -0
  72. package/src/lib/kinds.js +71 -7
  73. package/src/lib/kinds.js.map +1 -1
  74. package/src/lib/kinds.mjs +70 -6
  75. package/src/lib/kinds.mjs.map +1 -1
  76. package/src/lib/layout-settings.d.mts +7 -1
  77. package/src/lib/layout-settings.d.ts +7 -1
  78. package/src/lib/layout-settings.js +36 -2
  79. package/src/lib/layout-settings.js.map +1 -1
  80. package/src/lib/layout-settings.mjs +35 -2
  81. package/src/lib/layout-settings.mjs.map +1 -1
  82. package/src/lib/locales/ar/canvas.js +6 -0
  83. package/src/lib/locales/ar/canvas.js.map +1 -1
  84. package/src/lib/locales/ar/canvas.mjs +6 -0
  85. package/src/lib/locales/ar/canvas.mjs.map +1 -1
  86. package/src/lib/locales/ar/changes.js +2 -2
  87. package/src/lib/locales/ar/changes.js.map +1 -1
  88. package/src/lib/locales/ar/changes.mjs +2 -2
  89. package/src/lib/locales/ar/changes.mjs.map +1 -1
  90. package/src/lib/locales/ar/defaults.js +7 -0
  91. package/src/lib/locales/ar/defaults.js.map +1 -1
  92. package/src/lib/locales/ar/defaults.mjs +7 -0
  93. package/src/lib/locales/ar/defaults.mjs.map +1 -1
  94. package/src/lib/locales/ar/index.js +2 -1
  95. package/src/lib/locales/ar/index.js.map +1 -1
  96. package/src/lib/locales/ar/index.mjs +2 -1
  97. package/src/lib/locales/ar/index.mjs.map +1 -1
  98. package/src/lib/locales/ar/kinds.js +15 -0
  99. package/src/lib/locales/ar/kinds.js.map +1 -1
  100. package/src/lib/locales/ar/kinds.mjs +15 -0
  101. package/src/lib/locales/ar/kinds.mjs.map +1 -1
  102. package/src/lib/locales/ar/layout.js +2 -0
  103. package/src/lib/locales/ar/layout.js.map +1 -1
  104. package/src/lib/locales/ar/layout.mjs +2 -0
  105. package/src/lib/locales/ar/layout.mjs.map +1 -1
  106. package/src/lib/locales/ar/panel.js +85 -1
  107. package/src/lib/locales/ar/panel.js.map +1 -1
  108. package/src/lib/locales/ar/panel.mjs +85 -1
  109. package/src/lib/locales/ar/panel.mjs.map +1 -1
  110. package/src/lib/locales/ar/questions.js +20 -0
  111. package/src/lib/locales/ar/questions.js.map +1 -1
  112. package/src/lib/locales/ar/questions.mjs +20 -0
  113. package/src/lib/locales/ar/questions.mjs.map +1 -1
  114. package/src/lib/locales/ar/refusals.js +23 -1
  115. package/src/lib/locales/ar/refusals.js.map +1 -1
  116. package/src/lib/locales/ar/refusals.mjs +23 -1
  117. package/src/lib/locales/ar/refusals.mjs.map +1 -1
  118. package/src/lib/locales/ar/rules-ui.js +19 -0
  119. package/src/lib/locales/ar/rules-ui.js.map +1 -1
  120. package/src/lib/locales/ar/rules-ui.mjs +19 -0
  121. package/src/lib/locales/ar/rules-ui.mjs.map +1 -1
  122. package/src/lib/locales/ar/rules.js +7 -0
  123. package/src/lib/locales/ar/rules.js.map +1 -1
  124. package/src/lib/locales/ar/rules.mjs +7 -0
  125. package/src/lib/locales/ar/rules.mjs.map +1 -1
  126. package/src/lib/locales/ar/settings-changes.js +20 -0
  127. package/src/lib/locales/ar/settings-changes.js.map +1 -1
  128. package/src/lib/locales/ar/settings-changes.mjs +20 -0
  129. package/src/lib/locales/ar/settings-changes.mjs.map +1 -1
  130. package/src/lib/locales/ar/steps.js +31 -1
  131. package/src/lib/locales/ar/steps.js.map +1 -1
  132. package/src/lib/locales/ar/steps.mjs +31 -1
  133. package/src/lib/locales/ar/steps.mjs.map +1 -1
  134. package/src/lib/locales/ar/tables.d.mts +2 -0
  135. package/src/lib/locales/ar/tables.d.ts +2 -0
  136. package/src/lib/locales/ar/tables.js +69 -0
  137. package/src/lib/locales/ar/tables.js.map +1 -0
  138. package/src/lib/locales/ar/tables.mjs +66 -0
  139. package/src/lib/locales/ar/tables.mjs.map +1 -0
  140. package/src/lib/locales/en/canvas.d.mts +13 -0
  141. package/src/lib/locales/en/canvas.d.ts +13 -0
  142. package/src/lib/locales/en/canvas.js +6 -0
  143. package/src/lib/locales/en/canvas.js.map +1 -1
  144. package/src/lib/locales/en/canvas.mjs +6 -0
  145. package/src/lib/locales/en/canvas.mjs.map +1 -1
  146. package/src/lib/locales/en/changes.d.mts +2 -2
  147. package/src/lib/locales/en/changes.d.ts +2 -2
  148. package/src/lib/locales/en/changes.js +1 -1
  149. package/src/lib/locales/en/changes.js.map +1 -1
  150. package/src/lib/locales/en/changes.mjs +1 -1
  151. package/src/lib/locales/en/changes.mjs.map +1 -1
  152. package/src/lib/locales/en/defaults.d.mts +8 -0
  153. package/src/lib/locales/en/defaults.d.ts +8 -0
  154. package/src/lib/locales/en/defaults.js +8 -0
  155. package/src/lib/locales/en/defaults.js.map +1 -1
  156. package/src/lib/locales/en/defaults.mjs +8 -0
  157. package/src/lib/locales/en/defaults.mjs.map +1 -1
  158. package/src/lib/locales/en/index.d.mts +311 -4
  159. package/src/lib/locales/en/index.d.ts +311 -4
  160. package/src/lib/locales/en/index.js +2 -1
  161. package/src/lib/locales/en/index.js.map +1 -1
  162. package/src/lib/locales/en/index.mjs +2 -1
  163. package/src/lib/locales/en/index.mjs.map +1 -1
  164. package/src/lib/locales/en/kinds.d.mts +15 -0
  165. package/src/lib/locales/en/kinds.d.ts +15 -0
  166. package/src/lib/locales/en/kinds.js +15 -0
  167. package/src/lib/locales/en/kinds.js.map +1 -1
  168. package/src/lib/locales/en/kinds.mjs +15 -0
  169. package/src/lib/locales/en/kinds.mjs.map +1 -1
  170. package/src/lib/locales/en/layout.d.mts +2 -0
  171. package/src/lib/locales/en/layout.d.ts +2 -0
  172. package/src/lib/locales/en/layout.js +2 -0
  173. package/src/lib/locales/en/layout.js.map +1 -1
  174. package/src/lib/locales/en/layout.mjs +2 -0
  175. package/src/lib/locales/en/layout.mjs.map +1 -1
  176. package/src/lib/locales/en/panel.d.mts +84 -0
  177. package/src/lib/locales/en/panel.d.ts +84 -0
  178. package/src/lib/locales/en/panel.js +66 -1
  179. package/src/lib/locales/en/panel.js.map +1 -1
  180. package/src/lib/locales/en/panel.mjs +66 -1
  181. package/src/lib/locales/en/panel.mjs.map +1 -1
  182. package/src/lib/locales/en/questions.d.mts +20 -0
  183. package/src/lib/locales/en/questions.d.ts +20 -0
  184. package/src/lib/locales/en/questions.js +21 -0
  185. package/src/lib/locales/en/questions.js.map +1 -1
  186. package/src/lib/locales/en/questions.mjs +21 -0
  187. package/src/lib/locales/en/questions.mjs.map +1 -1
  188. package/src/lib/locales/en/refusals.d.mts +22 -0
  189. package/src/lib/locales/en/refusals.d.ts +22 -0
  190. package/src/lib/locales/en/refusals.js +24 -1
  191. package/src/lib/locales/en/refusals.js.map +1 -1
  192. package/src/lib/locales/en/refusals.mjs +24 -1
  193. package/src/lib/locales/en/refusals.mjs.map +1 -1
  194. package/src/lib/locales/en/rules-ui.d.mts +24 -0
  195. package/src/lib/locales/en/rules-ui.d.ts +24 -0
  196. package/src/lib/locales/en/rules-ui.js +20 -0
  197. package/src/lib/locales/en/rules-ui.js.map +1 -1
  198. package/src/lib/locales/en/rules-ui.mjs +20 -0
  199. package/src/lib/locales/en/rules-ui.mjs.map +1 -1
  200. package/src/lib/locales/en/rules.d.mts +8 -0
  201. package/src/lib/locales/en/rules.d.ts +8 -0
  202. package/src/lib/locales/en/rules.js +8 -0
  203. package/src/lib/locales/en/rules.js.map +1 -1
  204. package/src/lib/locales/en/rules.mjs +9 -1
  205. package/src/lib/locales/en/rules.mjs.map +1 -1
  206. package/src/lib/locales/en/settings-changes.d.mts +20 -0
  207. package/src/lib/locales/en/settings-changes.d.ts +20 -0
  208. package/src/lib/locales/en/settings-changes.js +21 -0
  209. package/src/lib/locales/en/settings-changes.js.map +1 -1
  210. package/src/lib/locales/en/settings-changes.mjs +21 -0
  211. package/src/lib/locales/en/settings-changes.mjs.map +1 -1
  212. package/src/lib/locales/en/steps.d.mts +35 -0
  213. package/src/lib/locales/en/steps.d.ts +35 -0
  214. package/src/lib/locales/en/steps.js +32 -1
  215. package/src/lib/locales/en/steps.js.map +1 -1
  216. package/src/lib/locales/en/steps.mjs +32 -1
  217. package/src/lib/locales/en/steps.mjs.map +1 -1
  218. package/src/lib/locales/en/tables.d.mts +73 -0
  219. package/src/lib/locales/en/tables.d.ts +73 -0
  220. package/src/lib/locales/en/tables.js +85 -0
  221. package/src/lib/locales/en/tables.js.map +1 -0
  222. package/src/lib/locales/en/tables.mjs +82 -0
  223. package/src/lib/locales/en/tables.mjs.map +1 -0
  224. package/src/lib/page-checks.js +6 -3
  225. package/src/lib/page-checks.js.map +1 -1
  226. package/src/lib/page-checks.mjs +6 -3
  227. package/src/lib/page-checks.mjs.map +1 -1
  228. package/src/lib/page-tree.d.mts +5 -1
  229. package/src/lib/page-tree.d.ts +5 -1
  230. package/src/lib/page-tree.js +29 -3
  231. package/src/lib/page-tree.js.map +1 -1
  232. package/src/lib/page-tree.mjs +28 -3
  233. package/src/lib/page-tree.mjs.map +1 -1
  234. package/src/lib/panel-block.js +22 -3
  235. package/src/lib/panel-block.js.map +1 -1
  236. package/src/lib/panel-block.mjs +22 -3
  237. package/src/lib/panel-block.mjs.map +1 -1
  238. package/src/lib/panel-field.js +22 -2
  239. package/src/lib/panel-field.js.map +1 -1
  240. package/src/lib/panel-field.mjs +22 -2
  241. package/src/lib/panel-field.mjs.map +1 -1
  242. package/src/lib/panel-group.js +7 -1
  243. package/src/lib/panel-group.js.map +1 -1
  244. package/src/lib/panel-group.mjs +7 -1
  245. package/src/lib/panel-group.mjs.map +1 -1
  246. package/src/lib/panel-layout.js +7 -1
  247. package/src/lib/panel-layout.js.map +1 -1
  248. package/src/lib/panel-layout.mjs +7 -1
  249. package/src/lib/panel-layout.mjs.map +1 -1
  250. package/src/lib/panel-look.js +25 -5
  251. package/src/lib/panel-look.js.map +1 -1
  252. package/src/lib/panel-look.mjs +27 -7
  253. package/src/lib/panel-look.mjs.map +1 -1
  254. package/src/lib/panel-page.d.mts +4 -2
  255. package/src/lib/panel-page.d.ts +4 -2
  256. package/src/lib/panel-page.js +41 -3
  257. package/src/lib/panel-page.js.map +1 -1
  258. package/src/lib/panel-page.mjs +41 -3
  259. package/src/lib/panel-page.mjs.map +1 -1
  260. package/src/lib/panel-screen.js +2 -2
  261. package/src/lib/panel-screen.js.map +1 -1
  262. package/src/lib/panel-screen.mjs +3 -3
  263. package/src/lib/panel-screen.mjs.map +1 -1
  264. package/src/lib/placeholder-when.d.mts +13 -0
  265. package/src/lib/placeholder-when.d.ts +13 -0
  266. package/src/lib/placeholder-when.js +83 -0
  267. package/src/lib/placeholder-when.js.map +1 -0
  268. package/src/lib/placeholder-when.mjs +80 -0
  269. package/src/lib/placeholder-when.mjs.map +1 -0
  270. package/src/lib/roles-setting.d.mts +18 -0
  271. package/src/lib/roles-setting.d.ts +18 -0
  272. package/src/lib/roles-setting.js +48 -0
  273. package/src/lib/roles-setting.js.map +1 -0
  274. package/src/lib/roles-setting.mjs +43 -0
  275. package/src/lib/roles-setting.mjs.map +1 -0
  276. package/src/lib/rules-answers.js +22 -7
  277. package/src/lib/rules-answers.js.map +1 -1
  278. package/src/lib/rules-answers.mjs +22 -7
  279. package/src/lib/rules-answers.mjs.map +1 -1
  280. package/src/lib/rules-changes.js +1 -1
  281. package/src/lib/rules-changes.js.map +1 -1
  282. package/src/lib/rules-changes.mjs +2 -2
  283. package/src/lib/rules-changes.mjs.map +1 -1
  284. package/src/lib/rules-checks.js +1 -1
  285. package/src/lib/rules-checks.js.map +1 -1
  286. package/src/lib/rules-checks.mjs +1 -1
  287. package/src/lib/rules-checks.mjs.map +1 -1
  288. package/src/lib/rules-commands.d.mts +6 -0
  289. package/src/lib/rules-commands.d.ts +6 -0
  290. package/src/lib/rules-commands.js +63 -3
  291. package/src/lib/rules-commands.js.map +1 -1
  292. package/src/lib/rules-commands.mjs +63 -3
  293. package/src/lib/rules-commands.mjs.map +1 -1
  294. package/src/lib/rules-defaults.d.mts +8 -0
  295. package/src/lib/rules-defaults.d.ts +8 -0
  296. package/src/lib/rules-defaults.js +77 -0
  297. package/src/lib/rules-defaults.js.map +1 -0
  298. package/src/lib/rules-defaults.mjs +74 -0
  299. package/src/lib/rules-defaults.mjs.map +1 -0
  300. package/src/lib/rules-formula.js +12 -3
  301. package/src/lib/rules-formula.js.map +1 -1
  302. package/src/lib/rules-formula.mjs +12 -3
  303. package/src/lib/rules-formula.mjs.map +1 -1
  304. package/src/lib/rules-panel.js +4 -1
  305. package/src/lib/rules-panel.js.map +1 -1
  306. package/src/lib/rules-panel.mjs +4 -1
  307. package/src/lib/rules-panel.mjs.map +1 -1
  308. package/src/lib/rules-words.d.mts +10 -3
  309. package/src/lib/rules-words.d.ts +10 -3
  310. package/src/lib/rules-words.js +18 -3
  311. package/src/lib/rules-words.js.map +1 -1
  312. package/src/lib/rules-words.mjs +17 -3
  313. package/src/lib/rules-words.mjs.map +1 -1
  314. package/src/lib/rules-worked-out.js +31 -6
  315. package/src/lib/rules-worked-out.js.map +1 -1
  316. package/src/lib/rules-worked-out.mjs +31 -6
  317. package/src/lib/rules-worked-out.mjs.map +1 -1
  318. package/src/lib/shown-while.d.mts +16 -0
  319. package/src/lib/shown-while.d.ts +16 -0
  320. package/src/lib/shown-while.js +28 -0
  321. package/src/lib/shown-while.js.map +1 -0
  322. package/src/lib/shown-while.mjs +25 -0
  323. package/src/lib/shown-while.mjs.map +1 -0
  324. package/src/lib/steps-commands.d.mts +2 -2
  325. package/src/lib/steps-commands.d.ts +2 -2
  326. package/src/lib/steps-commands.js +3 -0
  327. package/src/lib/steps-commands.js.map +1 -1
  328. package/src/lib/steps-commands.mjs +3 -0
  329. package/src/lib/steps-commands.mjs.map +1 -1
  330. package/src/lib/steps-editor.js +12 -3
  331. package/src/lib/steps-editor.js.map +1 -1
  332. package/src/lib/steps-editor.mjs +12 -3
  333. package/src/lib/steps-editor.mjs.map +1 -1
  334. package/src/lib/steps-places.d.mts +3 -3
  335. package/src/lib/steps-places.d.ts +3 -3
  336. package/src/lib/steps-places.js +15 -4
  337. package/src/lib/steps-places.js.map +1 -1
  338. package/src/lib/steps-places.mjs +15 -4
  339. package/src/lib/steps-places.mjs.map +1 -1
  340. package/src/lib/steps-settings.js +75 -1
  341. package/src/lib/steps-settings.js.map +1 -1
  342. package/src/lib/steps-settings.mjs +75 -1
  343. package/src/lib/steps-settings.mjs.map +1 -1
  344. package/src/lib/steps-words.js +24 -3
  345. package/src/lib/steps-words.js.map +1 -1
  346. package/src/lib/steps-words.mjs +24 -3
  347. package/src/lib/steps-words.mjs.map +1 -1
  348. package/src/lib/structure-changes.js +6 -0
  349. package/src/lib/structure-changes.js.map +1 -1
  350. package/src/lib/structure-changes.mjs +6 -0
  351. package/src/lib/structure-changes.mjs.map +1 -1
  352. package/src/lib/styles-rules.d.mts +1 -1
  353. package/src/lib/styles-rules.d.ts +1 -1
  354. package/src/lib/styles-rules.js +12 -0
  355. package/src/lib/styles-rules.js.map +1 -1
  356. package/src/lib/styles-rules.mjs +12 -0
  357. package/src/lib/styles-rules.mjs.map +1 -1
  358. package/src/lib/styles.d.mts +1 -1
  359. package/src/lib/styles.d.ts +1 -1
  360. package/src/lib/styles.js +7 -0
  361. package/src/lib/styles.js.map +1 -1
  362. package/src/lib/styles.mjs +7 -0
  363. package/src/lib/styles.mjs.map +1 -1
  364. package/src/lib/table-commands.d.mts +76 -0
  365. package/src/lib/table-commands.d.ts +76 -0
  366. package/src/lib/table-commands.js +248 -0
  367. package/src/lib/table-commands.js.map +1 -0
  368. package/src/lib/table-commands.mjs +244 -0
  369. package/src/lib/table-commands.mjs.map +1 -0
  370. package/src/lib/table-panel.d.mts +8 -0
  371. package/src/lib/table-panel.d.ts +8 -0
  372. package/src/lib/table-panel.js +276 -0
  373. package/src/lib/table-panel.js.map +1 -0
  374. package/src/lib/table-panel.mjs +273 -0
  375. package/src/lib/table-panel.mjs.map +1 -0
  376. package/src/lib/toolbox.js +1 -0
  377. package/src/lib/toolbox.js.map +1 -1
  378. package/src/lib/toolbox.mjs +1 -0
  379. package/src/lib/toolbox.mjs.map +1 -1
@@ -1,11 +1,17 @@
1
- import type { Badge, ButtonNode, Field, Page, StatButton, Tone } from '@fieldia/core';
1
+ import type { Alert, Badge, ButtonNode, Field, MenuItem, Page, Ribbon, StatButton, Tone } from '@fieldia/core';
2
2
  /**
3
3
  * A record's header, as the designer edits it: the status steps, the
4
4
  * header's buttons, the counters that open related records, and the badges
5
5
  * by the title. Each part has an id like any element, so it can be picked on
6
6
  * the canvas, moved among its kind, and shown only for some records.
7
7
  */
8
- export type HeaderPartKind = 'button' | 'stat' | 'badge';
8
+ export type HeaderPartKind = 'button' | 'stat' | 'badge' | 'ribbon' | 'alert' | 'menu';
9
+ /** A part of a sheet's header or card: a button, a counter, a badge, a ribbon, an alert, or an item of the gear menu over it. */
10
+ export type HeaderPart = ButtonNode | StatButton | Badge | Ribbon | Alert | MenuItem;
11
+ /** A part's words: an alert's message, any other's label; a built-in item of the gear menu with none of its own, none. */
12
+ export declare const wordsOf: (part: HeaderPart) => string;
13
+ /** What a new item of the gear menu is: one of the record's own, the app's action, or a report under Print. */
14
+ export type MenuItemKind = NonNullable<MenuItem['builtin']> | 'action' | 'print';
9
15
  export interface HeaderPartPatch {
10
16
  label?: string;
11
17
  /** The action's name, for a button or a counter. The app decides what it does. */
@@ -14,30 +20,82 @@ export interface HeaderPartPatch {
14
20
  style?: ButtonNode['style'];
15
21
  /** A button's question before it acts; empty asks nothing. */
16
22
  confirm?: string;
17
- /** A badge's colour. */
23
+ /** A button's key, as typed: "v", "Shift+G"; empty for none. */
24
+ hotkey?: string;
25
+ /** A badge's, a ribbon's or an alert's colour. */
18
26
  tone?: Tone;
19
- /** The number a counter shows, from a field; empty shows none. */
27
+ /** A ribbon's or an alert's words from a field, while it holds any; empty for none. */
28
+ wordsField?: string;
29
+ /** A ribbon's words on pointing at it; empty for none. */
30
+ tooltip?: string;
31
+ /** An alert with a × that hides it. */
32
+ dismissible?: boolean;
33
+ /** The value a counter shows, from a field; empty shows none. */
20
34
  field?: string;
35
+ /** A counter's words after its value; empty for none. */
36
+ unit?: string;
37
+ /** A counter's words after its value from a field, its words from a field, its second value: a field's name, empty for none. */
38
+ unitField?: string;
39
+ labelField?: string;
40
+ secondField?: string;
41
+ /** Words for a counter's second value, which then shows under the first; empty for none. */
42
+ secondLabel?: string;
43
+ /** A counter's help: its tooltip, read out as its description; empty for none. */
44
+ help?: string;
21
45
  icon?: string;
46
+ /** An item of the gear menu: one of the record's own it is (empty for none), and whether it goes under Print. */
47
+ builtin?: MenuItem['builtin'] | '';
48
+ group?: 'actions' | 'print';
49
+ }
50
+ /** How the status steps behave: clicked, where they sit, the time spent per step, folded stages, a click that saves. */
51
+ export interface StatusbarOptions {
52
+ clickable?: boolean;
53
+ position?: 'header' | 'title';
54
+ /** A json field holding the time per step; empty for none. */
55
+ durationsField?: string;
56
+ /** Stages folded by their record under More: a link's steps only. */
57
+ fold?: boolean;
58
+ /** A click saves the record at once: steps that can be clicked only. */
59
+ saves?: boolean;
22
60
  }
23
61
  export interface HeaderCommands {
24
62
  /** Status steps from a field that holds one of a list, or `null` for none. */
25
- setStatusbar(field: string | null, options?: {
26
- clickable?: boolean;
27
- position?: 'header' | 'title';
28
- }): boolean;
63
+ setStatusbar(field: string | null, options?: StatusbarOptions): boolean;
29
64
  /** A button, a counter or a badge, at the end of its kind. Returns its id, picked. */
30
65
  addHeaderPart(kind: HeaderPartKind, label: string): string | false;
31
66
  updateHeaderPart(id: string, patch: HeaderPartPatch): boolean;
32
67
  moveHeaderPart(id: string, delta: number): boolean;
33
68
  removeHeaderPart(id: string): boolean;
69
+ /** A button inside an alert, after its words: a link that runs an action. Returns its id. */
70
+ addAlertButton(alert: string, label: string): string | false;
71
+ /** An alert's button's words, or the action it runs. */
72
+ updateAlertButton(alert: string, button: string, patch: {
73
+ label?: string;
74
+ action?: string;
75
+ }): boolean;
76
+ removeAlertButton(alert: string, button: string): boolean;
77
+ /**
78
+ * An item at the end of the gear menu over the record: one of the record's
79
+ * own (Archive, Unarchive, Duplicate, Delete) in the page's words, or the
80
+ * app's action, or a report under Print, with these words. Returns its id, picked.
81
+ */
82
+ addMenuItem(kind: MenuItemKind, label?: string): string | false;
83
+ /** Whether the pager and the breadcrumbs the app gives show over the record: true takes the page's "no" away. */
84
+ setRecordToolbar(patch: {
85
+ pager?: boolean;
86
+ breadcrumbs?: boolean;
87
+ }): boolean;
88
+ /** The record's attachment beside the sheet: null for none, '' for the app's attachments, or a file field's name. */
89
+ setAttachmentPreview(field: string | null): boolean;
90
+ /** Where the side panel stays beside the sheet: on a wide form, or always. */
91
+ setSidePanelBeside(where: 'wide' | 'always'): boolean;
34
92
  }
35
- /** A part of a sheet's header by its id: what kind, which list, and where in it. */
93
+ /** A part of a sheet's header by its id: what kind, which list, and where in it. A page's one `ribbon` is found as the first of the ribbons. */
36
94
  export declare function findHeaderPart(page: Page, id: string): {
37
95
  kind: HeaderPartKind;
38
- list: (ButtonNode | StatButton | Badge)[];
96
+ list: HeaderPart[];
39
97
  index: number;
40
- part: ButtonNode | StatButton | Badge;
98
+ part: HeaderPart;
41
99
  } | null;
42
100
  export interface HeaderContext {
43
101
  apply(edit: (draft: Page) => void, merge?: string | null): boolean;
@@ -1,22 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wordsOf = void 0;
3
4
  exports.findHeaderPart = findHeaderPart;
4
5
  exports.headerCommands = headerCommands;
5
6
  const kinds_1 = require("./kinds");
6
7
  const page_tree_1 = require("./page-tree");
7
8
  const refusal_1 = require("./refusal");
9
+ const hotkey_setting_1 = require("./hotkey-setting");
10
+ /** A part's words: an alert's message, any other's label; a built-in item of the gear menu with none of its own, none. */
11
+ const wordsOf = (part) => ('message' in part ? part.message : (part.label ?? ''));
12
+ exports.wordsOf = wordsOf;
8
13
  /** The lists a header part sits in, by kind, as the sheet names them. */
9
- const LISTS = { button: 'buttons', stat: 'statButtons', badge: 'badges' };
10
- /** A part of a sheet's header by its id: what kind, which list, and where in it. */
14
+ /** What a counter can show: a number, an amount, a date, words, a choice. */
15
+ const COUNTED = ['integer', 'float', 'monetary', 'date', 'datetime', 'char', 'selection'];
16
+ const LISTS = { button: 'buttons', stat: 'statButtons', badge: 'badges', ribbon: 'ribbons', alert: 'alerts' };
17
+ /** A part of a sheet's header by its id: what kind, which list, and where in it. A page's one `ribbon` is found as the first of the ribbons. */
11
18
  function findHeaderPart(page, id) {
12
19
  const root = page.layout;
13
20
  if (root.type !== 'sheet')
14
21
  return null;
22
+ const menu = root.toolbar?.menu ?? [];
23
+ const item = menu.findIndex((p) => p.id === id);
24
+ if (item !== -1)
25
+ return { kind: 'menu', list: menu, index: item, part: menu[item] };
26
+ if (root.ribbon?.id === id)
27
+ return { kind: 'ribbon', list: [root.ribbon, ...(root.ribbons ?? [])], index: 0, part: root.ribbon };
15
28
  for (const kind of Object.keys(LISTS)) {
16
29
  const list = (root[LISTS[kind]] ?? []);
17
30
  const index = list.findIndex((p) => p.id === id);
18
31
  if (index !== -1)
19
- return { kind, list, index, part: list[index] };
32
+ return { kind, list: kind === 'ribbon' && root.ribbon ? [root.ribbon, ...list] : list, index: kind === 'ribbon' && root.ribbon ? index + 1 : index, part: list[index] };
20
33
  }
21
34
  return null;
22
35
  }
@@ -50,11 +63,24 @@ function headerCommands(context) {
50
63
  delete draft.fields[name];
51
64
  };
52
65
  const partOf = (draft, id) => {
53
- const found = findHeaderPart(draft, id);
66
+ let found = findHeaderPart(draft, id);
54
67
  if (!found)
55
68
  throw new refusal_1.Refusal((w) => w.refusals.noHeaderPart(id));
69
+ // A page's one ribbon joins the list of ribbons once one is edited: they are moved and taken away alike.
70
+ const root = draft.layout;
71
+ if (found.kind === 'ribbon' && root.ribbon) {
72
+ root.ribbons = [root.ribbon, ...(root.ribbons ?? [])];
73
+ delete root.ribbon;
74
+ found = findHeaderPart(draft, id);
75
+ }
56
76
  return found;
57
77
  };
78
+ const alertOf = (draft, id) => {
79
+ const found = partOf(draft, id);
80
+ if (found.kind !== 'alert')
81
+ throw new refusal_1.Refusal((w) => w.refusals.onlyAlertButtons);
82
+ return found.part;
83
+ };
58
84
  return {
59
85
  setStatusbar(field, options = {}) {
60
86
  return apply((draft) => {
@@ -65,14 +91,28 @@ function headerCommands(context) {
65
91
  return;
66
92
  }
67
93
  const def = fieldFor(draft, field);
68
- if (def.type !== 'selection' || def.multiple)
94
+ // A choice's steps, or the stages a link points to.
95
+ if ((def.type !== 'selection' || def.multiple) && def.type !== 'many2one')
69
96
  throw new refusal_1.Refusal((w) => w.refusals.statusOneOfList(def.label, (0, kinds_1.storedAs)(def, w)));
70
97
  const kept = root.statusbar?.field === field ? root.statusbar : undefined;
71
- root.statusbar = { ...kept, field, ...options };
72
- if (root.statusbar.clickable === false)
73
- delete root.statusbar.clickable;
74
- if (root.statusbar.position === 'header')
75
- delete root.statusbar.position;
98
+ const bar = { ...kept, field, ...options };
99
+ if (bar.durationsField) {
100
+ const times = fieldFor(draft, bar.durationsField);
101
+ if (times.type !== 'json')
102
+ throw new refusal_1.Refusal((w) => w.refusals.timesFromJson(times.label));
103
+ }
104
+ else
105
+ delete bar.durationsField;
106
+ if (bar.fold && def.type !== 'many2one')
107
+ throw new refusal_1.Refusal((w) => w.refusals.foldStages);
108
+ if (bar.saves && !bar.clickable)
109
+ throw new refusal_1.Refusal((w) => w.refusals.savesOnClick);
110
+ for (const key of ['clickable', 'fold', 'saves'])
111
+ if (!bar[key])
112
+ delete bar[key];
113
+ if (bar.position === 'header')
114
+ delete bar.position;
115
+ root.statusbar = bar;
76
116
  prune(draft);
77
117
  });
78
118
  },
@@ -89,6 +129,13 @@ function headerCommands(context) {
89
129
  root.buttons = [...(root.buttons ?? []), { type: 'button', id: created, label: words, action: actionName(words) }];
90
130
  else if (kind === 'stat')
91
131
  root.statButtons = [...(root.statButtons ?? []), { id: created, label: words, action: actionName(words) }];
132
+ else if (kind === 'ribbon') {
133
+ // The one ribbon a page had joins the list, first.
134
+ root.ribbons = [...(root.ribbon ? [root.ribbon] : []), ...(root.ribbons ?? []), { id: created, label: words, tone: 'success' }];
135
+ delete root.ribbon;
136
+ }
137
+ else if (kind === 'alert')
138
+ root.alerts = [...(root.alerts ?? []), { id: created, message: words, tone: 'info' }];
92
139
  else
93
140
  root.badges = [...(root.badges ?? []), { id: created, label: words, tone: 'muted' }];
94
141
  });
@@ -98,36 +145,106 @@ function headerCommands(context) {
98
145
  return created;
99
146
  },
100
147
  updateHeaderPart(id, patch) {
101
- const typing = Object.keys(patch).length === 1 && ('label' in patch || 'action' in patch || 'confirm' in patch);
148
+ const typing = Object.keys(patch).length === 1 && ('label' in patch || 'action' in patch || 'confirm' in patch || 'tooltip' in patch || 'unit' in patch || 'secondLabel' in patch || 'help' in patch);
102
149
  return apply((draft) => {
103
150
  const { kind, part } = partOf(draft, id);
104
- if (patch.label !== undefined)
105
- part.label = patch.label;
151
+ if (patch.label !== undefined) {
152
+ if (kind === 'alert')
153
+ part.message = patch.label;
154
+ else
155
+ part.label = patch.label;
156
+ }
157
+ if (patch.label !== undefined && kind === 'menu' && !patch.label.trim()) {
158
+ // A built-in item's words may go: its own come back, in the page's language.
159
+ if (!part.builtin)
160
+ throw new refusal_1.Refusal((w) => w.refusals.menuNeedsWords);
161
+ delete part.label;
162
+ }
106
163
  if (patch.action !== undefined) {
107
- if (kind === 'badge')
164
+ if (kind === 'badge' || kind === 'ribbon' || kind === 'alert')
108
165
  throw new refusal_1.Refusal((w) => w.refusals.badgeNoAction);
109
166
  if (!patch.action.trim())
110
167
  throw new refusal_1.Refusal((w) => (kind === 'stat' ? w.refusals.counterAction : w.refusals.buttonAction));
111
168
  part.action = patch.action.trim();
112
169
  }
170
+ if (patch.builtin !== undefined) {
171
+ if (kind !== 'menu')
172
+ throw new refusal_1.Refusal((w) => w.refusals.onlyMenuBuiltin);
173
+ const item = part;
174
+ if (patch.builtin)
175
+ item.builtin = patch.builtin;
176
+ else {
177
+ if (!item.label?.trim())
178
+ throw new refusal_1.Refusal((w) => w.refusals.menuNeedsWords);
179
+ delete item.builtin;
180
+ // Its own steps or action, else the app's action of its words.
181
+ if (!item.steps && item.action === undefined)
182
+ item.action = actionName(item.label);
183
+ }
184
+ }
185
+ if (patch.group !== undefined) {
186
+ if (kind !== 'menu')
187
+ throw new refusal_1.Refusal((w) => w.refusals.onlyMenuGroup);
188
+ if (patch.group === 'print')
189
+ part.group = 'print';
190
+ else
191
+ delete part.group;
192
+ }
113
193
  if (patch.style !== undefined) {
114
194
  if (kind !== 'button')
115
195
  throw new refusal_1.Refusal((w) => w.refusals.onlyButtonStyle);
116
196
  part.style = patch.style;
117
197
  }
118
198
  if (patch.confirm !== undefined) {
119
- if (kind !== 'button')
199
+ if (kind !== 'button' && kind !== 'menu')
120
200
  throw new refusal_1.Refusal((w) => w.refusals.onlyButtonAsks);
121
201
  if (patch.confirm.trim())
122
202
  part.confirm = patch.confirm;
123
203
  else
124
204
  delete part.confirm;
125
205
  }
206
+ if (patch.hotkey !== undefined) {
207
+ if (kind !== 'button')
208
+ throw new refusal_1.Refusal((w) => w.refusals.onlyButtonKey);
209
+ const key = (0, hotkey_setting_1.hotkeyFrom)(patch.hotkey);
210
+ if (key)
211
+ part.hotkey = key;
212
+ else
213
+ delete part.hotkey;
214
+ }
126
215
  if (patch.tone !== undefined) {
127
- if (kind !== 'badge')
216
+ if (kind !== 'badge' && kind !== 'ribbon' && kind !== 'alert')
128
217
  throw new refusal_1.Refusal((w) => w.refusals.onlyBadgeTone);
129
218
  part.tone = patch.tone;
130
219
  }
220
+ if (patch.wordsField !== undefined) {
221
+ if (kind !== 'ribbon' && kind !== 'alert')
222
+ throw new refusal_1.Refusal((w) => w.refusals.onlyRibbonAlertField);
223
+ const key = kind === 'ribbon' ? 'labelField' : 'messageField';
224
+ if (!patch.wordsField)
225
+ delete part[key];
226
+ else {
227
+ fieldFor(draft, patch.wordsField);
228
+ part[key] = patch.wordsField;
229
+ }
230
+ prune(draft);
231
+ }
232
+ if (patch.tooltip !== undefined) {
233
+ if (kind !== 'ribbon')
234
+ throw new refusal_1.Refusal((w) => w.refusals.onlyRibbonTooltip);
235
+ if (patch.tooltip.trim())
236
+ part.tooltip = patch.tooltip;
237
+ else
238
+ delete part.tooltip;
239
+ }
240
+ if (patch.dismissible !== undefined) {
241
+ if (kind !== 'alert')
242
+ throw new refusal_1.Refusal((w) => w.refusals.onlyAlertCloses);
243
+ if (patch.dismissible)
244
+ part.dismissible = true;
245
+ else
246
+ delete part.dismissible;
247
+ }
131
248
  if (patch.field !== undefined) {
132
249
  if (kind !== 'stat')
133
250
  throw new refusal_1.Refusal((w) => w.refusals.onlyCounterField);
@@ -135,17 +252,62 @@ function headerCommands(context) {
135
252
  delete part.field;
136
253
  else {
137
254
  const def = fieldFor(draft, patch.field);
138
- if (!['integer', 'float', 'monetary'].includes(def.type))
255
+ if (!COUNTED.includes(def.type))
139
256
  throw new refusal_1.Refusal((w) => w.refusals.counterNumber(def.label, (0, kinds_1.storedAs)(def, w)));
140
257
  part.field = patch.field;
141
258
  }
142
259
  prune(draft);
143
260
  }
261
+ for (const key of ['unitField', 'labelField', 'secondField']) {
262
+ const name = patch[key];
263
+ if (name === undefined)
264
+ continue;
265
+ if (kind !== 'stat')
266
+ throw new refusal_1.Refusal((w) => w.refusals.onlyCounterSecond);
267
+ const stat = part;
268
+ if (!name) {
269
+ delete stat[key];
270
+ if (key === 'secondField')
271
+ delete stat.secondLabel;
272
+ }
273
+ else {
274
+ const def = fieldFor(draft, name);
275
+ if (key === 'secondField' && !COUNTED.includes(def.type))
276
+ throw new refusal_1.Refusal((w) => w.refusals.counterNumber(def.label, (0, kinds_1.storedAs)(def, w)));
277
+ stat[key] = name;
278
+ }
279
+ prune(draft);
280
+ }
281
+ if (patch.help !== undefined) {
282
+ if (kind !== 'stat')
283
+ throw new refusal_1.Refusal((w) => w.refusals.onlyCounterSecond);
284
+ if (patch.help.trim())
285
+ part.help = patch.help;
286
+ else
287
+ delete part.help;
288
+ }
289
+ for (const key of ['unit', 'secondLabel']) {
290
+ const words = patch[key];
291
+ if (words === undefined)
292
+ continue;
293
+ if (kind !== 'stat')
294
+ throw new refusal_1.Refusal((w) => w.refusals.onlyCounterSecond);
295
+ const stat = part;
296
+ if (key === 'secondLabel' && words.trim() && !stat.secondField)
297
+ throw new refusal_1.Refusal((w) => w.refusals.secondWordsNeedValue);
298
+ if (words.trim())
299
+ stat[key] = words;
300
+ else
301
+ delete stat[key];
302
+ }
144
303
  if (patch.icon !== undefined) {
304
+ if (kind === 'ribbon' || kind === 'alert')
305
+ throw new refusal_1.Refusal((w) => w.refusals.onlySomeIcons);
306
+ const own = part;
145
307
  if (patch.icon)
146
- part.icon = patch.icon;
308
+ own.icon = patch.icon;
147
309
  else
148
- delete part.icon;
310
+ delete own.icon;
149
311
  }
150
312
  }, typing ? `header:${Object.keys(patch)[0]}:${id}` : null);
151
313
  },
@@ -164,11 +326,128 @@ function headerCommands(context) {
164
326
  const { kind, list, index } = partOf(draft, id);
165
327
  list.splice(index, 1);
166
328
  const root = draft.layout;
167
- if (!list.length)
329
+ if (kind === 'menu') {
330
+ // The menu and the toolbar go with their last item, the pager's and the trail's settings staying.
331
+ if (!list.length && root.toolbar)
332
+ delete root.toolbar.menu;
333
+ if (root.toolbar && !Object.keys(root.toolbar).length)
334
+ delete root.toolbar;
335
+ }
336
+ else if (!list.length)
168
337
  delete root[LISTS[kind]];
169
338
  prune(draft);
170
339
  });
171
340
  },
341
+ addAlertButton(alertId, label) {
342
+ let created = '';
343
+ const words = label.trim();
344
+ const ok = apply((draft) => {
345
+ const alert = alertOf(draft, alertId);
346
+ if (!words)
347
+ throw new refusal_1.Refusal((w) => w.refusals.headerNeedsWords);
348
+ const ids = (0, page_tree_1.allIds)(draft);
349
+ created = (0, page_tree_1.nextName)((id) => ids.has(id), `${alertId}-button`, '-');
350
+ alert.buttons = [...(alert.buttons ?? []), { type: 'button', id: created, label: words, action: actionName(words) }];
351
+ });
352
+ return ok ? created : false;
353
+ },
354
+ updateAlertButton(alertId, buttonId, patch) {
355
+ const typing = Object.keys(patch).length === 1;
356
+ return apply((draft) => {
357
+ const button = alertOf(draft, alertId).buttons?.find((b) => b.id === buttonId);
358
+ if (!button)
359
+ throw new refusal_1.Refusal((w) => w.refusals.noHeaderPart(buttonId));
360
+ if (patch.label !== undefined)
361
+ button.label = patch.label;
362
+ if (patch.action !== undefined) {
363
+ if (!patch.action.trim())
364
+ throw new refusal_1.Refusal((w) => w.refusals.buttonAction);
365
+ button.action = patch.action.trim();
366
+ }
367
+ }, typing ? `alert-button:${Object.keys(patch)[0]}:${buttonId}` : null);
368
+ },
369
+ addMenuItem(kind, label) {
370
+ let created = '';
371
+ const ok = apply((draft) => {
372
+ const root = sheetOf(draft);
373
+ const ids = (0, page_tree_1.allIds)(draft);
374
+ created = (0, page_tree_1.nextName)((id) => ids.has(id), kind === 'action' || kind === 'print' ? 'menu' : `menu-${kind}`, '-');
375
+ const words = (label ?? '').trim();
376
+ let item;
377
+ if (kind === 'action' || kind === 'print') {
378
+ if (!words)
379
+ throw new refusal_1.Refusal((w) => w.refusals.menuNeedsWords);
380
+ item = { id: created, label: words, ...(kind === 'print' ? { group: 'print' } : {}), action: actionName(words) };
381
+ }
382
+ else
383
+ item = { id: created, ...(words ? { label: words } : {}), builtin: kind };
384
+ root.toolbar = { ...root.toolbar, menu: [...(root.toolbar?.menu ?? []), item] };
385
+ });
386
+ if (!ok)
387
+ return false;
388
+ context.select(created);
389
+ return created;
390
+ },
391
+ setRecordToolbar(patch) {
392
+ return apply((draft) => {
393
+ const root = sheetOf(draft);
394
+ const toolbar = { ...root.toolbar };
395
+ // Shown is how it is unless said: only a "no" is written.
396
+ for (const key of ['pager', 'breadcrumbs']) {
397
+ if (patch[key] === undefined)
398
+ continue;
399
+ if (patch[key])
400
+ delete toolbar[key];
401
+ else
402
+ toolbar[key] = false;
403
+ }
404
+ if (Object.keys(toolbar).length)
405
+ root.toolbar = toolbar;
406
+ else
407
+ delete root.toolbar;
408
+ });
409
+ },
410
+ setAttachmentPreview(field) {
411
+ return apply((draft) => {
412
+ const root = sheetOf(draft);
413
+ if (field === null)
414
+ delete root.attachmentPreview;
415
+ else if (!field)
416
+ root.attachmentPreview = { ...root.attachmentPreview, field: undefined };
417
+ else {
418
+ const def = fieldFor(draft, field);
419
+ if (def.type !== 'binary' && def.type !== 'image')
420
+ throw new refusal_1.Refusal((w) => w.refusals.previewNeedsFile(def.label, (0, kinds_1.storedAs)(def, w)));
421
+ root.attachmentPreview = { ...root.attachmentPreview, field };
422
+ }
423
+ if (root.attachmentPreview?.field === undefined && root.attachmentPreview)
424
+ delete root.attachmentPreview.field;
425
+ prune(draft);
426
+ });
427
+ },
428
+ setSidePanelBeside(where) {
429
+ return apply((draft) => {
430
+ const root = sheetOf(draft);
431
+ if (!root.sidePanel)
432
+ throw new refusal_1.Refusal((w) => w.refusals.noSidePanel);
433
+ if (where === 'always')
434
+ root.sidePanelBeside = 'always';
435
+ else
436
+ delete root.sidePanelBeside;
437
+ });
438
+ },
439
+ removeAlertButton(alertId, buttonId) {
440
+ return apply((draft) => {
441
+ const alert = alertOf(draft, alertId);
442
+ const kept = (alert.buttons ?? []).filter((b) => b.id !== buttonId);
443
+ if (kept.length === (alert.buttons ?? []).length)
444
+ throw new refusal_1.Refusal((w) => w.refusals.noHeaderPart(buttonId));
445
+ if (kept.length)
446
+ alert.buttons = kept;
447
+ else
448
+ delete alert.buttons;
449
+ });
450
+ },
172
451
  };
173
452
  }
174
453
  //# sourceMappingURL=header-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-commands.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/header-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header-commands.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/header-commands.ts"],"names":[],"mappings":"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"}