@ixfx/components 0.2.4 → 0.2.6

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 (718) hide show
  1. package/bundle/index.d.ts +285 -159
  2. package/bundle/index.d.ts.map +1 -1
  3. package/bundle/index.js +3291 -2485
  4. package/bundle/index.js.map +1 -1
  5. package/dist/ac-text.d.ts +96 -0
  6. package/dist/ac-text.d.ts.map +1 -0
  7. package/dist/ac-text.js +484 -0
  8. package/dist/ac-text.js.map +1 -0
  9. package/dist/{button/button-styles.js → button-B9ztaKyl.js} +49 -3
  10. package/dist/button-B9ztaKyl.js.map +1 -0
  11. package/dist/button.d.ts +20 -0
  12. package/dist/button.d.ts.map +1 -0
  13. package/dist/button.js +3 -0
  14. package/dist/checkbox.d.ts +26 -57
  15. package/dist/checkbox.d.ts.map +1 -1
  16. package/dist/checkbox.js +74 -88
  17. package/dist/checkbox.js.map +1 -1
  18. package/dist/chunk-pbuEa-1d.js +13 -0
  19. package/dist/colour-C3MQIjFJ-BJV-QC-3.js +4138 -0
  20. package/dist/colour-C3MQIjFJ-BJV-QC-3.js.map +1 -0
  21. package/dist/colour-picker-BNqDz4wK.js +922 -0
  22. package/dist/colour-picker-BNqDz4wK.js.map +1 -0
  23. package/dist/colour-picker.d.ts +2 -0
  24. package/dist/colour-picker.js +2 -0
  25. package/dist/crumbs.d.ts +91 -0
  26. package/dist/crumbs.d.ts.map +1 -0
  27. package/dist/crumbs.js +789 -0
  28. package/dist/crumbs.js.map +1 -0
  29. package/dist/data-display.d.ts +22 -18
  30. package/dist/data-display.d.ts.map +1 -1
  31. package/dist/data-display.js +81 -108
  32. package/dist/data-display.js.map +1 -1
  33. package/dist/decorate-O4m1U4l3.js +25 -0
  34. package/dist/decorate-O4m1U4l3.js.map +1 -0
  35. package/dist/defaults-FEZaGiYZ.js +38 -0
  36. package/dist/defaults-FEZaGiYZ.js.map +1 -0
  37. package/dist/dist-By5URG0Y.js +1290 -0
  38. package/dist/dist-By5URG0Y.js.map +1 -0
  39. package/dist/dist-D7kJgnSE.js +1039 -0
  40. package/dist/dist-D7kJgnSE.js.map +1 -0
  41. package/dist/editable-label.d.ts +71 -0
  42. package/dist/editable-label.d.ts.map +1 -0
  43. package/dist/editable-label.js +279 -0
  44. package/dist/editable-label.js.map +1 -0
  45. package/dist/hex-editor-2_s0Ua5t.d.ts +130 -0
  46. package/dist/hex-editor-2_s0Ua5t.d.ts.map +1 -0
  47. package/dist/hex-editor-gH3mteMr.js +1147 -0
  48. package/dist/hex-editor-gH3mteMr.js.map +1 -0
  49. package/dist/hex.d.ts +2 -0
  50. package/dist/hex.js +2 -0
  51. package/dist/highlight-CAjwQ4GE.js +50 -0
  52. package/dist/highlight-CAjwQ4GE.js.map +1 -0
  53. package/dist/icon-CYACf6o8.js +100 -0
  54. package/dist/icon-CYACf6o8.js.map +1 -0
  55. package/dist/icon-CeTDJhC7.d.ts +35 -0
  56. package/dist/icon-CeTDJhC7.d.ts.map +1 -0
  57. package/dist/icons.d.ts +3 -0
  58. package/dist/icons.js +9 -0
  59. package/dist/icons.js.map +1 -0
  60. package/dist/incr-search-BZawvrfl.js +311 -0
  61. package/dist/incr-search-BZawvrfl.js.map +1 -0
  62. package/dist/incr-search.d.ts +2 -0
  63. package/dist/incr-search.js +3 -0
  64. package/dist/index-B1hNR7Z9.d.ts +36 -0
  65. package/dist/index-B1hNR7Z9.d.ts.map +1 -0
  66. package/dist/index-CnL9krsH.d.ts +1238 -0
  67. package/dist/index-CnL9krsH.d.ts.map +1 -0
  68. package/dist/index-CwGkb9s1.d.ts +395 -0
  69. package/dist/index-CwGkb9s1.d.ts.map +1 -0
  70. package/dist/index-DrQjA8Gs.d.ts +22 -0
  71. package/dist/index-DrQjA8Gs.d.ts.map +1 -0
  72. package/dist/index-V2cJorlA.d.ts +160 -0
  73. package/dist/index-V2cJorlA.d.ts.map +1 -0
  74. package/dist/index-kY5gxbkI.d.ts +182 -0
  75. package/dist/index-kY5gxbkI.d.ts.map +1 -0
  76. package/dist/index.d.ts +540 -53
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +6519 -54
  79. package/dist/index.js.map +1 -1
  80. package/dist/interaction-CQDQJf2Q.js +1 -0
  81. package/dist/keyboard-De_vOHLg.js +20 -0
  82. package/dist/keyboard-De_vOHLg.js.map +1 -0
  83. package/dist/labelled-input-base-BvgH7ldm.js +155 -0
  84. package/dist/labelled-input-base-BvgH7ldm.js.map +1 -0
  85. package/dist/labelled-input-base-D-Y7agky.d.ts +42 -0
  86. package/dist/labelled-input-base-D-Y7agky.d.ts.map +1 -0
  87. package/dist/labelled-radial-input.d.ts +33 -0
  88. package/dist/labelled-radial-input.d.ts.map +1 -0
  89. package/dist/labelled-radial-input.js +188 -0
  90. package/dist/labelled-radial-input.js.map +1 -0
  91. package/dist/labelled-range-input.d.ts +2 -0
  92. package/dist/{labelled-range-input/labelled-range-input.js → labelled-range-input.js} +40 -45
  93. package/dist/labelled-range-input.js.map +1 -0
  94. package/dist/led.d.ts +20 -16
  95. package/dist/led.d.ts.map +1 -1
  96. package/dist/led.js +71 -79
  97. package/dist/led.js.map +1 -1
  98. package/dist/menu-C3eANB5M.js +813 -0
  99. package/dist/menu-C3eANB5M.js.map +1 -0
  100. package/dist/menu-item-6IU5weHi.js +766 -0
  101. package/dist/menu-item-6IU5weHi.js.map +1 -0
  102. package/dist/menu-item-ClQF2DKN.d.ts +127 -0
  103. package/dist/menu-item-ClQF2DKN.d.ts.map +1 -0
  104. package/dist/menu.d.ts +3 -0
  105. package/dist/menu.js +3 -0
  106. package/dist/miller.d.ts +323 -0
  107. package/dist/miller.d.ts.map +1 -0
  108. package/dist/miller.js +1343 -0
  109. package/dist/miller.js.map +1 -0
  110. package/dist/narrowed-text.d.ts +71 -0
  111. package/dist/narrowed-text.d.ts.map +1 -0
  112. package/dist/narrowed-text.js +571 -0
  113. package/dist/narrowed-text.js.map +1 -0
  114. package/dist/panel.d.ts +42 -0
  115. package/dist/panel.d.ts.map +1 -0
  116. package/dist/{panel/panel.js → panel.js} +82 -91
  117. package/dist/panel.js.map +1 -0
  118. package/dist/plots.d.ts +2 -0
  119. package/dist/plots.js +2 -0
  120. package/dist/polar-pad.d.ts +66 -0
  121. package/dist/polar-pad.d.ts.map +1 -0
  122. package/dist/polar-pad.js +537 -0
  123. package/dist/polar-pad.js.map +1 -0
  124. package/dist/popup-Ddx9LCzY.js +24 -0
  125. package/dist/popup-Ddx9LCzY.js.map +1 -0
  126. package/dist/prominence-CreDBdCs.js +98 -0
  127. package/dist/prominence-CreDBdCs.js.map +1 -0
  128. package/dist/radial-input-Dbc6fgCK.js +849 -0
  129. package/dist/radial-input-Dbc6fgCK.js.map +1 -0
  130. package/dist/radial-input-LUSBEycd.d.ts +69 -0
  131. package/dist/radial-input-LUSBEycd.d.ts.map +1 -0
  132. package/dist/radial-input.d.ts +2 -0
  133. package/dist/radial-input.js +2 -0
  134. package/dist/range-input.d.ts +42 -0
  135. package/dist/range-input.d.ts.map +1 -0
  136. package/dist/{range-input/range-input.js → range-input.js} +155 -168
  137. package/dist/range-input.js.map +1 -0
  138. package/dist/range.d.ts +27 -0
  139. package/dist/range.d.ts.map +1 -0
  140. package/dist/range.js +136 -0
  141. package/dist/range.js.map +1 -0
  142. package/dist/registry-CZEB1YI9.js +21 -0
  143. package/dist/registry-CZEB1YI9.js.map +1 -0
  144. package/dist/selecthorizontal.d.ts +12 -8
  145. package/dist/selecthorizontal.d.ts.map +1 -1
  146. package/dist/selecthorizontal.js +20 -24
  147. package/dist/selecthorizontal.js.map +1 -1
  148. package/dist/snap-container.d.ts +49 -0
  149. package/dist/snap-container.d.ts.map +1 -0
  150. package/dist/snap-container.js +297 -0
  151. package/dist/snap-container.js.map +1 -0
  152. package/dist/{split-layout/split-layout.d.ts → split-layout.d.ts} +29 -25
  153. package/dist/split-layout.d.ts.map +1 -0
  154. package/dist/split-layout.js +545 -0
  155. package/dist/split-layout.js.map +1 -0
  156. package/dist/style.css +133 -0
  157. package/dist/swipe.d.ts +48 -0
  158. package/dist/swipe.d.ts.map +1 -0
  159. package/dist/swipe.js +204 -0
  160. package/dist/swipe.js.map +1 -0
  161. package/dist/tab-list-BnqISNvO.d.ts +65 -0
  162. package/dist/tab-list-BnqISNvO.d.ts.map +1 -0
  163. package/dist/tabs.d.ts +2 -0
  164. package/dist/tabs.js +203 -0
  165. package/dist/tabs.js.map +1 -0
  166. package/dist/tickled-controller-Cq1Va0rR.d.ts +218 -0
  167. package/dist/tickled-controller-Cq1Va0rR.d.ts.map +1 -0
  168. package/dist/tickled-styles-Bg3QbcrD.js +327 -0
  169. package/dist/tickled-styles-Bg3QbcrD.js.map +1 -0
  170. package/dist/timeline-B62Sz6J_.js +1748 -0
  171. package/dist/timeline-B62Sz6J_.js.map +1 -0
  172. package/dist/timeline.d.ts +2 -0
  173. package/dist/timeline.js +2 -0
  174. package/dist/tooltip-CwGfb4lp.d.ts +25 -0
  175. package/dist/tooltip-CwGfb4lp.d.ts.map +1 -0
  176. package/dist/{styles/tooltip.js → tooltip-DMxmBNky.js} +6 -2
  177. package/dist/tooltip-DMxmBNky.js.map +1 -0
  178. package/dist/tree-component-CQpoPo4s.d.ts +326 -0
  179. package/dist/tree-component-CQpoPo4s.d.ts.map +1 -0
  180. package/dist/tree-data-model-DGvRVOFY.js +190 -0
  181. package/dist/tree-data-model-DGvRVOFY.js.map +1 -0
  182. package/dist/tree.d.ts +99 -0
  183. package/dist/tree.d.ts.map +1 -0
  184. package/dist/tree.js +1144 -0
  185. package/dist/tree.js.map +1 -0
  186. package/dist/types-BKaqnpwx.d.ts +8 -0
  187. package/dist/types-BKaqnpwx.d.ts.map +1 -0
  188. package/dist/xy-axis-C7fNxDwY.js +6243 -0
  189. package/dist/xy-axis-C7fNxDwY.js.map +1 -0
  190. package/dist/xy-axis-D9uwpGTT.d.ts +140 -0
  191. package/dist/xy-axis-D9uwpGTT.d.ts.map +1 -0
  192. package/dist/xy-pad.d.ts +73 -110
  193. package/dist/xy-pad.d.ts.map +1 -1
  194. package/dist/xy-pad.js +300 -320
  195. package/dist/xy-pad.js.map +1 -1
  196. package/package.json +24 -28
  197. package/dist/ac-text/ac-text.d.ts +0 -99
  198. package/dist/ac-text/ac-text.d.ts.map +0 -1
  199. package/dist/ac-text/ac-text.js +0 -571
  200. package/dist/ac-text/ac-text.js.map +0 -1
  201. package/dist/button/button-styles.d.ts +0 -2
  202. package/dist/button/button-styles.d.ts.map +0 -1
  203. package/dist/button/button-styles.js.map +0 -1
  204. package/dist/button/button.d.ts +0 -16
  205. package/dist/button/button.d.ts.map +0 -1
  206. package/dist/button/button.js +0 -58
  207. package/dist/button/button.js.map +0 -1
  208. package/dist/button/radio-group.d.ts +0 -44
  209. package/dist/button/radio-group.d.ts.map +0 -1
  210. package/dist/button/radio-group.js +0 -385
  211. package/dist/button/radio-group.js.map +0 -1
  212. package/dist/button/split-button.d.ts +0 -59
  213. package/dist/button/split-button.d.ts.map +0 -1
  214. package/dist/button/split-button.js +0 -480
  215. package/dist/button/split-button.js.map +0 -1
  216. package/dist/button/types.d.ts +0 -18
  217. package/dist/button/types.d.ts.map +0 -1
  218. package/dist/button/types.js +0 -2
  219. package/dist/button/types.js.map +0 -1
  220. package/dist/colour-picker/colour-picker-popup.d.ts +0 -102
  221. package/dist/colour-picker/colour-picker-popup.d.ts.map +0 -1
  222. package/dist/colour-picker/colour-picker-popup.js +0 -399
  223. package/dist/colour-picker/colour-picker-popup.js.map +0 -1
  224. package/dist/colour-picker/colour-picker.d.ts +0 -100
  225. package/dist/colour-picker/colour-picker.d.ts.map +0 -1
  226. package/dist/colour-picker/colour-picker.js +0 -567
  227. package/dist/colour-picker/colour-picker.js.map +0 -1
  228. package/dist/colour-picker/index.d.ts +0 -4
  229. package/dist/colour-picker/index.d.ts.map +0 -1
  230. package/dist/colour-picker/index.js +0 -3
  231. package/dist/colour-picker/index.js.map +0 -1
  232. package/dist/colour-picker/styles.d.ts +0 -2
  233. package/dist/colour-picker/styles.d.ts.map +0 -1
  234. package/dist/colour-picker/styles.js +0 -139
  235. package/dist/colour-picker/styles.js.map +0 -1
  236. package/dist/colour-picker/types.d.ts +0 -33
  237. package/dist/colour-picker/types.d.ts.map +0 -1
  238. package/dist/colour-picker/types.js +0 -2
  239. package/dist/colour-picker/types.js.map +0 -1
  240. package/dist/colour-picker/util.d.ts +0 -15
  241. package/dist/colour-picker/util.d.ts.map +0 -1
  242. package/dist/colour-picker/util.js +0 -35
  243. package/dist/colour-picker/util.js.map +0 -1
  244. package/dist/common/searchable.d.ts +0 -9
  245. package/dist/common/searchable.d.ts.map +0 -1
  246. package/dist/common/searchable.js +0 -9
  247. package/dist/common/searchable.js.map +0 -1
  248. package/dist/common/tree-component.d.ts +0 -172
  249. package/dist/common/tree-component.d.ts.map +0 -1
  250. package/dist/common/tree-component.js +0 -8
  251. package/dist/common/tree-component.js.map +0 -1
  252. package/dist/common/tree-data-model.d.ts +0 -100
  253. package/dist/common/tree-data-model.d.ts.map +0 -1
  254. package/dist/common/tree-data-model.js +0 -207
  255. package/dist/common/tree-data-model.js.map +0 -1
  256. package/dist/common/tree-item.d.ts +0 -7
  257. package/dist/common/tree-item.d.ts.map +0 -1
  258. package/dist/common/tree-item.js +0 -2
  259. package/dist/common/tree-item.js.map +0 -1
  260. package/dist/common/types.d.ts +0 -69
  261. package/dist/common/types.d.ts.map +0 -1
  262. package/dist/common/types.js +0 -6
  263. package/dist/common/types.js.map +0 -1
  264. package/dist/crumbs/crumb-navigation.d.ts +0 -96
  265. package/dist/crumbs/crumb-navigation.d.ts.map +0 -1
  266. package/dist/crumbs/crumb-navigation.js +0 -911
  267. package/dist/crumbs/crumb-navigation.js.map +0 -1
  268. package/dist/crumbs/crumb-path-controller.d.ts +0 -18
  269. package/dist/crumbs/crumb-path-controller.d.ts.map +0 -1
  270. package/dist/crumbs/crumb-path-controller.js +0 -81
  271. package/dist/crumbs/crumb-path-controller.js.map +0 -1
  272. package/dist/crumbs/crumb-path.d.ts +0 -65
  273. package/dist/crumbs/crumb-path.d.ts.map +0 -1
  274. package/dist/crumbs/crumb-path.js +0 -691
  275. package/dist/crumbs/crumb-path.js.map +0 -1
  276. package/dist/editable-label/editable-label.d.ts +0 -98
  277. package/dist/editable-label/editable-label.d.ts.map +0 -1
  278. package/dist/editable-label/editable-label.js +0 -348
  279. package/dist/editable-label/editable-label.js.map +0 -1
  280. package/dist/editable-label/editable-number.d.ts +0 -96
  281. package/dist/editable-label/editable-number.d.ts.map +0 -1
  282. package/dist/editable-label/editable-number.js +0 -702
  283. package/dist/editable-label/editable-number.js.map +0 -1
  284. package/dist/hex/colour.d.ts +0 -6
  285. package/dist/hex/colour.d.ts.map +0 -1
  286. package/dist/hex/colour.js +0 -33
  287. package/dist/hex/colour.js.map +0 -1
  288. package/dist/hex/data.d.ts +0 -18
  289. package/dist/hex/data.d.ts.map +0 -1
  290. package/dist/hex/data.js +0 -61
  291. package/dist/hex/data.js.map +0 -1
  292. package/dist/hex/diff.d.ts +0 -14
  293. package/dist/hex/diff.d.ts.map +0 -1
  294. package/dist/hex/diff.js +0 -31
  295. package/dist/hex/diff.js.map +0 -1
  296. package/dist/hex/hex-editor.d.ts +0 -101
  297. package/dist/hex/hex-editor.d.ts.map +0 -1
  298. package/dist/hex/hex-editor.js +0 -894
  299. package/dist/hex/hex-editor.js.map +0 -1
  300. package/dist/hex/selection.d.ts +0 -11
  301. package/dist/hex/selection.d.ts.map +0 -1
  302. package/dist/hex/selection.js +0 -218
  303. package/dist/hex/selection.js.map +0 -1
  304. package/dist/hex/types.d.ts +0 -34
  305. package/dist/hex/types.d.ts.map +0 -1
  306. package/dist/hex/types.js +0 -4
  307. package/dist/hex/types.js.map +0 -1
  308. package/dist/icons/defaults.d.ts +0 -27
  309. package/dist/icons/defaults.d.ts.map +0 -1
  310. package/dist/icons/defaults.js +0 -34
  311. package/dist/icons/defaults.js.map +0 -1
  312. package/dist/icons/icon.d.ts +0 -31
  313. package/dist/icons/icon.d.ts.map +0 -1
  314. package/dist/icons/icon.js +0 -125
  315. package/dist/icons/icon.js.map +0 -1
  316. package/dist/icons/index.d.ts +0 -5
  317. package/dist/icons/index.d.ts.map +0 -1
  318. package/dist/icons/index.js +0 -6
  319. package/dist/icons/index.js.map +0 -1
  320. package/dist/icons/registry.d.ts +0 -11
  321. package/dist/icons/registry.d.ts.map +0 -1
  322. package/dist/icons/registry.js +0 -17
  323. package/dist/icons/registry.js.map +0 -1
  324. package/dist/incr-search/ac-adapter.d.ts +0 -18
  325. package/dist/incr-search/ac-adapter.d.ts.map +0 -1
  326. package/dist/incr-search/ac-adapter.js +0 -29
  327. package/dist/incr-search/ac-adapter.js.map +0 -1
  328. package/dist/incr-search/controller-miller.d.ts +0 -9
  329. package/dist/incr-search/controller-miller.d.ts.map +0 -1
  330. package/dist/incr-search/controller-miller.js +0 -8
  331. package/dist/incr-search/controller-miller.js.map +0 -1
  332. package/dist/incr-search/controller-tree.d.ts +0 -55
  333. package/dist/incr-search/controller-tree.d.ts.map +0 -1
  334. package/dist/incr-search/controller-tree.js +0 -106
  335. package/dist/incr-search/controller-tree.js.map +0 -1
  336. package/dist/incr-search/element-search.d.ts +0 -15
  337. package/dist/incr-search/element-search.d.ts.map +0 -1
  338. package/dist/incr-search/element-search.js +0 -82
  339. package/dist/incr-search/element-search.js.map +0 -1
  340. package/dist/incr-search/fuzzy.d.ts +0 -3
  341. package/dist/incr-search/fuzzy.d.ts.map +0 -1
  342. package/dist/incr-search/fuzzy.js +0 -37
  343. package/dist/incr-search/fuzzy.js.map +0 -1
  344. package/dist/incr-search/highlight.d.ts +0 -5
  345. package/dist/incr-search/highlight.d.ts.map +0 -1
  346. package/dist/incr-search/highlight.js +0 -54
  347. package/dist/incr-search/highlight.js.map +0 -1
  348. package/dist/incr-search/incr-search.d.ts +0 -3
  349. package/dist/incr-search/incr-search.d.ts.map +0 -1
  350. package/dist/incr-search/incr-search.js +0 -73
  351. package/dist/incr-search/incr-search.js.map +0 -1
  352. package/dist/incr-search/index.d.ts +0 -12
  353. package/dist/incr-search/index.d.ts.map +0 -1
  354. package/dist/incr-search/index.js +0 -8
  355. package/dist/incr-search/index.js.map +0 -1
  356. package/dist/incr-search/types.d.ts +0 -59
  357. package/dist/incr-search/types.d.ts.map +0 -1
  358. package/dist/incr-search/types.js +0 -2
  359. package/dist/incr-search/types.js.map +0 -1
  360. package/dist/interaction/index.d.ts +0 -10
  361. package/dist/interaction/index.d.ts.map +0 -1
  362. package/dist/interaction/index.js +0 -10
  363. package/dist/interaction/index.js.map +0 -1
  364. package/dist/interaction/tickled-controller.d.ts +0 -186
  365. package/dist/interaction/tickled-controller.d.ts.map +0 -1
  366. package/dist/interaction/tickled-controller.js +0 -256
  367. package/dist/interaction/tickled-controller.js.map +0 -1
  368. package/dist/interaction/tickled-styles.d.ts +0 -53
  369. package/dist/interaction/tickled-styles.d.ts.map +0 -1
  370. package/dist/interaction/tickled-styles.js +0 -106
  371. package/dist/interaction/tickled-styles.js.map +0 -1
  372. package/dist/interaction/tree-keyboard-controller.d.ts +0 -30
  373. package/dist/interaction/tree-keyboard-controller.d.ts.map +0 -1
  374. package/dist/interaction/tree-keyboard-controller.js +0 -105
  375. package/dist/interaction/tree-keyboard-controller.js.map +0 -1
  376. package/dist/keyboard.d.ts +0 -16
  377. package/dist/keyboard.d.ts.map +0 -1
  378. package/dist/keyboard.js +0 -22
  379. package/dist/keyboard.js.map +0 -1
  380. package/dist/labelled-radial-input/index.d.ts +0 -2
  381. package/dist/labelled-radial-input/index.d.ts.map +0 -1
  382. package/dist/labelled-radial-input/index.js +0 -2
  383. package/dist/labelled-radial-input/index.js.map +0 -1
  384. package/dist/labelled-radial-input/labelled-radial-input.d.ts +0 -77
  385. package/dist/labelled-radial-input/labelled-radial-input.d.ts.map +0 -1
  386. package/dist/labelled-radial-input/labelled-radial-input.js +0 -214
  387. package/dist/labelled-radial-input/labelled-radial-input.js.map +0 -1
  388. package/dist/labelled-range-input/index.d.ts +0 -2
  389. package/dist/labelled-range-input/index.d.ts.map +0 -1
  390. package/dist/labelled-range-input/index.js +0 -2
  391. package/dist/labelled-range-input/index.js.map +0 -1
  392. package/dist/labelled-range-input/labelled-range-input.d.ts +0 -80
  393. package/dist/labelled-range-input/labelled-range-input.d.ts.map +0 -1
  394. package/dist/labelled-range-input/labelled-range-input.js.map +0 -1
  395. package/dist/menu/index.d.ts +0 -14
  396. package/dist/menu/index.d.ts.map +0 -1
  397. package/dist/menu/index.js +0 -13
  398. package/dist/menu/index.js.map +0 -1
  399. package/dist/menu/menu-bar.d.ts +0 -23
  400. package/dist/menu/menu-bar.d.ts.map +0 -1
  401. package/dist/menu/menu-bar.js +0 -110
  402. package/dist/menu/menu-bar.js.map +0 -1
  403. package/dist/menu/menu-check-item.d.ts +0 -33
  404. package/dist/menu/menu-check-item.d.ts.map +0 -1
  405. package/dist/menu/menu-check-item.js +0 -175
  406. package/dist/menu/menu-check-item.js.map +0 -1
  407. package/dist/menu/menu-command-controller.d.ts +0 -14
  408. package/dist/menu/menu-command-controller.d.ts.map +0 -1
  409. package/dist/menu/menu-command-controller.js +0 -22
  410. package/dist/menu/menu-command-controller.js.map +0 -1
  411. package/dist/menu/menu-container.d.ts +0 -36
  412. package/dist/menu/menu-container.d.ts.map +0 -1
  413. package/dist/menu/menu-container.js +0 -351
  414. package/dist/menu/menu-container.js.map +0 -1
  415. package/dist/menu/menu-from-tree.d.ts +0 -17
  416. package/dist/menu/menu-from-tree.d.ts.map +0 -1
  417. package/dist/menu/menu-from-tree.js +0 -103
  418. package/dist/menu/menu-from-tree.js.map +0 -1
  419. package/dist/menu/menu-header.d.ts +0 -12
  420. package/dist/menu/menu-header.d.ts.map +0 -1
  421. package/dist/menu/menu-header.js +0 -36
  422. package/dist/menu/menu-header.js.map +0 -1
  423. package/dist/menu/menu-item.d.ts +0 -41
  424. package/dist/menu/menu-item.d.ts.map +0 -1
  425. package/dist/menu/menu-item.js +0 -240
  426. package/dist/menu/menu-item.js.map +0 -1
  427. package/dist/menu/menu-radio-group.d.ts +0 -24
  428. package/dist/menu/menu-radio-group.d.ts.map +0 -1
  429. package/dist/menu/menu-radio-group.js +0 -71
  430. package/dist/menu/menu-radio-group.js.map +0 -1
  431. package/dist/menu/menu-radio-item.d.ts +0 -22
  432. package/dist/menu/menu-radio-item.d.ts.map +0 -1
  433. package/dist/menu/menu-radio-item.js +0 -116
  434. package/dist/menu/menu-radio-item.js.map +0 -1
  435. package/dist/menu/menu-separator.d.ts +0 -11
  436. package/dist/menu/menu-separator.d.ts.map +0 -1
  437. package/dist/menu/menu-separator.js +0 -29
  438. package/dist/menu/menu-separator.js.map +0 -1
  439. package/dist/menu/menu-sub-trigger.d.ts +0 -46
  440. package/dist/menu/menu-sub-trigger.d.ts.map +0 -1
  441. package/dist/menu/menu-sub-trigger.js +0 -302
  442. package/dist/menu/menu-sub-trigger.js.map +0 -1
  443. package/dist/menu/menu-trigger.d.ts +0 -57
  444. package/dist/menu/menu-trigger.d.ts.map +0 -1
  445. package/dist/menu/menu-trigger.js +0 -351
  446. package/dist/menu/menu-trigger.js.map +0 -1
  447. package/dist/miller/index.d.ts +0 -5
  448. package/dist/miller/index.d.ts.map +0 -1
  449. package/dist/miller/index.js +0 -5
  450. package/dist/miller/index.js.map +0 -1
  451. package/dist/miller/miller-base.d.ts +0 -184
  452. package/dist/miller/miller-base.d.ts.map +0 -1
  453. package/dist/miller/miller-base.js +0 -1249
  454. package/dist/miller/miller-base.js.map +0 -1
  455. package/dist/miller/miller-list.d.ts +0 -30
  456. package/dist/miller/miller-list.d.ts.map +0 -1
  457. package/dist/miller/miller-list.js +0 -192
  458. package/dist/miller/miller-list.js.map +0 -1
  459. package/dist/miller/miller-tree-controller.d.ts +0 -58
  460. package/dist/miller/miller-tree-controller.d.ts.map +0 -1
  461. package/dist/miller/miller-tree-controller.js +0 -134
  462. package/dist/miller/miller-tree-controller.js.map +0 -1
  463. package/dist/miller/types.d.ts +0 -63
  464. package/dist/miller/types.d.ts.map +0 -1
  465. package/dist/miller/types.js +0 -6
  466. package/dist/miller/types.js.map +0 -1
  467. package/dist/mixins/labelled-input-base.d.ts +0 -38
  468. package/dist/mixins/labelled-input-base.d.ts.map +0 -1
  469. package/dist/mixins/labelled-input-base.js +0 -171
  470. package/dist/mixins/labelled-input-base.js.map +0 -1
  471. package/dist/mixins/labelled-input-util.d.ts +0 -3
  472. package/dist/mixins/labelled-input-util.d.ts.map +0 -1
  473. package/dist/mixins/labelled-input-util.js +0 -10
  474. package/dist/mixins/labelled-input-util.js.map +0 -1
  475. package/dist/my-element.d.ts +0 -14
  476. package/dist/my-element.d.ts.map +0 -1
  477. package/dist/my-element.js +0 -44
  478. package/dist/my-element.js.map +0 -1
  479. package/dist/narrowed-text/index.d.ts +0 -3
  480. package/dist/narrowed-text/index.d.ts.map +0 -1
  481. package/dist/narrowed-text/index.js +0 -3
  482. package/dist/narrowed-text/index.js.map +0 -1
  483. package/dist/narrowed-text/narrowed-text.d.ts +0 -48
  484. package/dist/narrowed-text/narrowed-text.d.ts.map +0 -1
  485. package/dist/narrowed-text/narrowed-text.js +0 -668
  486. package/dist/narrowed-text/narrowed-text.js.map +0 -1
  487. package/dist/narrowed-text/types.d.ts +0 -20
  488. package/dist/narrowed-text/types.d.ts.map +0 -1
  489. package/dist/narrowed-text/types.js +0 -2
  490. package/dist/narrowed-text/types.js.map +0 -1
  491. package/dist/panel/panel-group.d.ts +0 -23
  492. package/dist/panel/panel-group.d.ts.map +0 -1
  493. package/dist/panel/panel-group.js +0 -109
  494. package/dist/panel/panel-group.js.map +0 -1
  495. package/dist/panel/panel.d.ts +0 -39
  496. package/dist/panel/panel.d.ts.map +0 -1
  497. package/dist/panel/panel.js.map +0 -1
  498. package/dist/plots/colour-map.d.ts +0 -31
  499. package/dist/plots/colour-map.d.ts.map +0 -1
  500. package/dist/plots/colour-map.js +0 -133
  501. package/dist/plots/colour-map.js.map +0 -1
  502. package/dist/plots/data.d.ts +0 -27
  503. package/dist/plots/data.d.ts.map +0 -1
  504. package/dist/plots/data.js +0 -47
  505. package/dist/plots/data.js.map +0 -1
  506. package/dist/plots/single-axis.d.ts +0 -41
  507. package/dist/plots/single-axis.d.ts.map +0 -1
  508. package/dist/plots/single-axis.js +0 -428
  509. package/dist/plots/single-axis.js.map +0 -1
  510. package/dist/plots/svg-utils.d.ts +0 -12
  511. package/dist/plots/svg-utils.d.ts.map +0 -1
  512. package/dist/plots/svg-utils.js +0 -64
  513. package/dist/plots/svg-utils.js.map +0 -1
  514. package/dist/plots/xy-axis.d.ts +0 -42
  515. package/dist/plots/xy-axis.d.ts.map +0 -1
  516. package/dist/plots/xy-axis.js +0 -307
  517. package/dist/plots/xy-axis.js.map +0 -1
  518. package/dist/polar-pad/polar-pad.d.ts +0 -132
  519. package/dist/polar-pad/polar-pad.d.ts.map +0 -1
  520. package/dist/polar-pad/polar-pad.js +0 -598
  521. package/dist/polar-pad/polar-pad.js.map +0 -1
  522. package/dist/radial-input/radial-input.d.ts +0 -45
  523. package/dist/radial-input/radial-input.d.ts.map +0 -1
  524. package/dist/radial-input/radial-input.js +0 -692
  525. package/dist/radial-input/radial-input.js.map +0 -1
  526. package/dist/radial-input/svg-utils.d.ts +0 -147
  527. package/dist/radial-input/svg-utils.d.ts.map +0 -1
  528. package/dist/radial-input/svg-utils.js +0 -346
  529. package/dist/radial-input/svg-utils.js.map +0 -1
  530. package/dist/radial-input/types.d.ts +0 -25
  531. package/dist/radial-input/types.d.ts.map +0 -1
  532. package/dist/radial-input/types.js +0 -5
  533. package/dist/radial-input/types.js.map +0 -1
  534. package/dist/range/range-multi.d.ts +0 -62
  535. package/dist/range/range-multi.d.ts.map +0 -1
  536. package/dist/range/range-multi.js +0 -652
  537. package/dist/range/range-multi.js.map +0 -1
  538. package/dist/range/range.d.ts +0 -23
  539. package/dist/range/range.d.ts.map +0 -1
  540. package/dist/range/range.js +0 -153
  541. package/dist/range/range.js.map +0 -1
  542. package/dist/range-input/index.d.ts +0 -2
  543. package/dist/range-input/index.d.ts.map +0 -1
  544. package/dist/range-input/index.js +0 -2
  545. package/dist/range-input/index.js.map +0 -1
  546. package/dist/range-input/range-input.d.ts +0 -92
  547. package/dist/range-input/range-input.d.ts.map +0 -1
  548. package/dist/range-input/range-input.js.map +0 -1
  549. package/dist/snap-container/snap-container.d.ts +0 -45
  550. package/dist/snap-container/snap-container.d.ts.map +0 -1
  551. package/dist/snap-container/snap-container.js +0 -352
  552. package/dist/snap-container/snap-container.js.map +0 -1
  553. package/dist/split-layout/split-layout.d.ts.map +0 -1
  554. package/dist/split-layout/split-layout.js +0 -674
  555. package/dist/split-layout/split-layout.js.map +0 -1
  556. package/dist/styles/popup.d.ts +0 -11
  557. package/dist/styles/popup.d.ts.map +0 -1
  558. package/dist/styles/popup.js +0 -20
  559. package/dist/styles/popup.js.map +0 -1
  560. package/dist/styles/prominence.d.ts +0 -58
  561. package/dist/styles/prominence.d.ts.map +0 -1
  562. package/dist/styles/prominence.js +0 -94
  563. package/dist/styles/prominence.js.map +0 -1
  564. package/dist/styles/tooltip.d.ts +0 -2
  565. package/dist/styles/tooltip.d.ts.map +0 -1
  566. package/dist/styles/tooltip.js.map +0 -1
  567. package/dist/svg-edit-label.d.ts +0 -2
  568. package/dist/svg-edit-label.d.ts.map +0 -1
  569. package/dist/svg-edit-label.js +0 -110
  570. package/dist/svg-edit-label.js.map +0 -1
  571. package/dist/swipe/index.d.ts +0 -2
  572. package/dist/swipe/index.d.ts.map +0 -1
  573. package/dist/swipe/index.js +0 -2
  574. package/dist/swipe/index.js.map +0 -1
  575. package/dist/swipe/swipe.d.ts +0 -65
  576. package/dist/swipe/swipe.d.ts.map +0 -1
  577. package/dist/swipe/swipe.js +0 -229
  578. package/dist/swipe/swipe.js.map +0 -1
  579. package/dist/tabs/tab-layout-item.d.ts +0 -10
  580. package/dist/tabs/tab-layout-item.d.ts.map +0 -1
  581. package/dist/tabs/tab-layout-item.js +0 -20
  582. package/dist/tabs/tab-layout-item.js.map +0 -1
  583. package/dist/tabs/tab-layout.d.ts +0 -10
  584. package/dist/tabs/tab-layout.d.ts.map +0 -1
  585. package/dist/tabs/tab-layout.js +0 -25
  586. package/dist/tabs/tab-layout.js.map +0 -1
  587. package/dist/tabs/tab-list-item.d.ts +0 -34
  588. package/dist/tabs/tab-list-item.d.ts.map +0 -1
  589. package/dist/tabs/tab-list-item.js +0 -195
  590. package/dist/tabs/tab-list-item.js.map +0 -1
  591. package/dist/tabs/tab-list.d.ts +0 -31
  592. package/dist/tabs/tab-list.d.ts.map +0 -1
  593. package/dist/tabs/tab-list.js +0 -257
  594. package/dist/tabs/tab-list.js.map +0 -1
  595. package/dist/tabs/tab-panel.d.ts +0 -11
  596. package/dist/tabs/tab-panel.d.ts.map +0 -1
  597. package/dist/tabs/tab-panel.js +0 -30
  598. package/dist/tabs/tab-panel.js.map +0 -1
  599. package/dist/tabs/tab-panels.d.ts +0 -30
  600. package/dist/tabs/tab-panels.d.ts.map +0 -1
  601. package/dist/tabs/tab-panels.js +0 -80
  602. package/dist/tabs/tab-panels.js.map +0 -1
  603. package/dist/timeline/index.d.ts +0 -9
  604. package/dist/timeline/index.d.ts.map +0 -1
  605. package/dist/timeline/index.js +0 -8
  606. package/dist/timeline/index.js.map +0 -1
  607. package/dist/timeline/timeline-controller.d.ts +0 -48
  608. package/dist/timeline/timeline-controller.d.ts.map +0 -1
  609. package/dist/timeline/timeline-controller.js +0 -81
  610. package/dist/timeline/timeline-controller.js.map +0 -1
  611. package/dist/timeline/timeline-draw.d.ts +0 -28
  612. package/dist/timeline/timeline-draw.d.ts.map +0 -1
  613. package/dist/timeline/timeline-draw.js +0 -330
  614. package/dist/timeline/timeline-draw.js.map +0 -1
  615. package/dist/timeline/timeline-element.d.ts +0 -140
  616. package/dist/timeline/timeline-element.d.ts.map +0 -1
  617. package/dist/timeline/timeline-element.js +0 -888
  618. package/dist/timeline/timeline-element.js.map +0 -1
  619. package/dist/timeline/timeline-interactions.d.ts +0 -40
  620. package/dist/timeline/timeline-interactions.d.ts.map +0 -1
  621. package/dist/timeline/timeline-interactions.js +0 -393
  622. package/dist/timeline/timeline-interactions.js.map +0 -1
  623. package/dist/timeline/timeline-styles.d.ts +0 -2
  624. package/dist/timeline/timeline-styles.d.ts.map +0 -1
  625. package/dist/timeline/timeline-styles.js +0 -153
  626. package/dist/timeline/timeline-styles.js.map +0 -1
  627. package/dist/timeline/timeline-track-tabs.d.ts +0 -30
  628. package/dist/timeline/timeline-track-tabs.d.ts.map +0 -1
  629. package/dist/timeline/timeline-track-tabs.js +0 -204
  630. package/dist/timeline/timeline-track-tabs.js.map +0 -1
  631. package/dist/timeline/types.d.ts +0 -144
  632. package/dist/timeline/types.d.ts.map +0 -1
  633. package/dist/timeline/types.js +0 -3
  634. package/dist/timeline/types.js.map +0 -1
  635. package/dist/tree/index.d.ts +0 -5
  636. package/dist/tree/index.d.ts.map +0 -1
  637. package/dist/tree/index.js +0 -5
  638. package/dist/tree/index.js.map +0 -1
  639. package/dist/tree/tree-base.d.ts +0 -70
  640. package/dist/tree/tree-base.d.ts.map +0 -1
  641. package/dist/tree/tree-base.js +0 -1028
  642. package/dist/tree/tree-base.js.map +0 -1
  643. package/dist/tree/tree-controller.d.ts +0 -14
  644. package/dist/tree/tree-controller.d.ts.map +0 -1
  645. package/dist/tree/tree-controller.js +0 -96
  646. package/dist/tree/tree-controller.js.map +0 -1
  647. package/dist/tree/tree-list.d.ts +0 -20
  648. package/dist/tree/tree-list.d.ts.map +0 -1
  649. package/dist/tree/tree-list.js +0 -174
  650. package/dist/tree/tree-list.js.map +0 -1
  651. package/dist/tree/types.d.ts +0 -14
  652. package/dist/tree/types.d.ts.map +0 -1
  653. package/dist/tree/types.js +0 -7
  654. package/dist/tree/types.js.map +0 -1
  655. package/dist/util/checkbox.d.ts +0 -2
  656. package/dist/util/checkbox.d.ts.map +0 -1
  657. package/dist/util/checkbox.js +0 -69
  658. package/dist/util/checkbox.js.map +0 -1
  659. package/dist/util/circle-arc.d.ts +0 -34
  660. package/dist/util/circle-arc.d.ts.map +0 -1
  661. package/dist/util/circle-arc.js +0 -85
  662. package/dist/util/circle-arc.js.map +0 -1
  663. package/dist/util/clamp.d.ts +0 -4
  664. package/dist/util/clamp.d.ts.map +0 -1
  665. package/dist/util/clamp.js +0 -23
  666. package/dist/util/clamp.js.map +0 -1
  667. package/dist/util/compare.d.ts +0 -53
  668. package/dist/util/compare.d.ts.map +0 -1
  669. package/dist/util/compare.js +0 -91
  670. package/dist/util/compare.js.map +0 -1
  671. package/dist/util/content-editable.d.ts +0 -2
  672. package/dist/util/content-editable.d.ts.map +0 -1
  673. package/dist/util/content-editable.js +0 -13
  674. package/dist/util/content-editable.js.map +0 -1
  675. package/dist/util/coordinates.d.ts +0 -3
  676. package/dist/util/coordinates.d.ts.map +0 -1
  677. package/dist/util/coordinates.js +0 -11
  678. package/dist/util/coordinates.js.map +0 -1
  679. package/dist/util/drag.d.ts +0 -16
  680. package/dist/util/drag.d.ts.map +0 -1
  681. package/dist/util/drag.js +0 -20
  682. package/dist/util/drag.js.map +0 -1
  683. package/dist/util/is-numeric.d.ts +0 -2
  684. package/dist/util/is-numeric.d.ts.map +0 -1
  685. package/dist/util/is-numeric.js +0 -9
  686. package/dist/util/is-numeric.js.map +0 -1
  687. package/dist/util/key-value.d.ts +0 -5
  688. package/dist/util/key-value.d.ts.map +0 -1
  689. package/dist/util/key-value.js +0 -29
  690. package/dist/util/key-value.js.map +0 -1
  691. package/dist/util/near.d.ts +0 -2
  692. package/dist/util/near.d.ts.map +0 -1
  693. package/dist/util/near.js +0 -6
  694. package/dist/util/near.js.map +0 -1
  695. package/dist/util/primitive-types.d.ts +0 -6
  696. package/dist/util/primitive-types.d.ts.map +0 -1
  697. package/dist/util/primitive-types.js +0 -2
  698. package/dist/util/primitive-types.js.map +0 -1
  699. package/dist/util/svg-editable-text.d.ts +0 -26
  700. package/dist/util/svg-editable-text.d.ts.map +0 -1
  701. package/dist/util/svg-editable-text.js +0 -119
  702. package/dist/util/svg-editable-text.js.map +0 -1
  703. package/dist/util/time.d.ts +0 -2
  704. package/dist/util/time.d.ts.map +0 -1
  705. package/dist/util/time.js +0 -2
  706. package/dist/util/time.js.map +0 -1
  707. package/dist/util/tooltip-controller.d.ts +0 -10
  708. package/dist/util/tooltip-controller.d.ts.map +0 -1
  709. package/dist/util/tooltip-controller.js +0 -237
  710. package/dist/util/tooltip-controller.js.map +0 -1
  711. package/dist/util/tooltip.d.ts +0 -21
  712. package/dist/util/tooltip.d.ts.map +0 -1
  713. package/dist/util/tooltip.js +0 -98
  714. package/dist/util/tooltip.js.map +0 -1
  715. package/dist/util/value-drag.d.ts +0 -33
  716. package/dist/util/value-drag.d.ts.map +0 -1
  717. package/dist/util/value-drag.js +0 -154
  718. package/dist/util/value-drag.js.map +0 -1
@@ -1,894 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { css, html, LitElement } from 'lit';
8
- import { customElement, property, state } from 'lit/decorators.js';
9
- import { repeat } from 'lit/directives/repeat.js';
10
- import { styleMap } from 'lit/directives/style-map.js';
11
- import { createShadeMap, getAsciiClass } from './colour.js';
12
- import { applyDiff, clearChangeset, createHexStore, getChangeset, readByte, reverseDiff, length as storeLength, writeByte, writeBytes } from './data.js';
13
- import { createUndoRedoStack, push as pushDiff, redo as redoDiff, undo as undoDiff } from './diff.js';
14
- import { bytesPerRow, clampPos, extendContiguous, extendRectangular, getCursorPos, getSelectedPositions, moveSelection, selectionContains, selectionFromPointerRange } from './selection.js';
15
- import { isContiguousSelection, isRectangularSelection } from './types.js';
16
- let IxfxHexEditorElement = class IxfxHexEditorElement extends LitElement {
17
- constructor() {
18
- super(...arguments);
19
- this.columns = 4;
20
- this.colourScheme = `ascii`;
21
- this.showChangeset = true;
22
- this.hideOffsetCol = false;
23
- this.hideHexCol = false;
24
- this.hideTextCol = false;
25
- this._selection = null;
26
- this._scrollTop = 0;
27
- this._editState = null;
28
- this._containerH = 0;
29
- this._shadeMap = null;
30
- this._focusSide = null;
31
- this._store = createHexStore(new Uint8Array(0));
32
- this._undoStack = createUndoRedoStack();
33
- this._copyBuffer = null;
34
- this._rowHeight = 24;
35
- this._dragStart = null;
36
- this._dragAnchor = null;
37
- this._rectAnchorX = 0;
38
- this._rectAnchorY = 0;
39
- this._rectAnchorXFromKeyboard = 0;
40
- this._rectAnchorYFromKeyboard = 0;
41
- this._initialSelectionPoint = 0;
42
- this._currentCursorPoint = 0;
43
- this._pointerMode = null;
44
- this._currentDragDiff = null;
45
- this._shiftClickTarget = null;
46
- this._onScroll = (e) => {
47
- const target = e.target;
48
- this._scrollTop = target.scrollTop;
49
- this.requestUpdate();
50
- };
51
- this._onKeyDown = (e) => {
52
- const isNavigationKey = [`ArrowLeft`, `ArrowRight`, `ArrowUp`, `ArrowDown`].includes(e.key);
53
- if (isNavigationKey) {
54
- e.preventDefault();
55
- e.stopPropagation();
56
- if (this._editState) {
57
- this._editState = null;
58
- }
59
- const dir = e.key.replace(`Arrow`, ``).toLowerCase();
60
- const dataLen = storeLength(this._store);
61
- const bpr = bytesPerRow(this.columns);
62
- if (e.metaKey || e.ctrlKey) {
63
- if (!this._selection || this._selection.kind !== `rectangular`) {
64
- let startPos = 0;
65
- if (this._selection?.kind === `single`) {
66
- startPos = this._selection.pos;
67
- }
68
- else if (this._selection?.kind === `contiguous`) {
69
- startPos = Math.min(this._selection.start, this._selection.end);
70
- }
71
- this._rectAnchorXFromKeyboard = startPos % bpr;
72
- this._rectAnchorYFromKeyboard = Math.floor(startPos / bpr);
73
- this._selection = { kind: `rectangular`, x: this._rectAnchorXFromKeyboard, y: this._rectAnchorYFromKeyboard, width: 1, height: 1 };
74
- }
75
- this._selection = extendRectangular(this._selection, dir, this.columns, dataLen, this._rectAnchorXFromKeyboard, this._rectAnchorYFromKeyboard);
76
- }
77
- else if (e.shiftKey) {
78
- if (!this._selection) {
79
- this._initialSelectionPoint = 0;
80
- this._currentCursorPoint = 0;
81
- }
82
- else if (this._selection.kind === `single`) {
83
- this._initialSelectionPoint = this._selection.pos;
84
- this._currentCursorPoint = this._selection.pos;
85
- }
86
- else if (this._selection.kind === `rectangular`) {
87
- const cursorPos = this._selection.y * bpr + this._selection.x;
88
- this._initialSelectionPoint = cursorPos;
89
- this._currentCursorPoint = cursorPos;
90
- }
91
- const newPos = getCursorPos(this._selection, dir, this.columns, dataLen);
92
- const start = Math.min(this._initialSelectionPoint, newPos);
93
- const end = Math.max(this._initialSelectionPoint, newPos);
94
- this._currentCursorPoint = newPos;
95
- this._selection = { kind: `contiguous`, start, end };
96
- }
97
- else {
98
- this._selection = moveSelection(this._selection, dir, this.columns, dataLen);
99
- const pos = getCursorPos(this._selection, dir, this.columns, dataLen);
100
- this._initialSelectionPoint = pos;
101
- this._currentCursorPoint = pos;
102
- }
103
- this._dispatchSelectEvent();
104
- this.requestUpdate();
105
- return;
106
- }
107
- if (e.key === `Tab`) {
108
- e.preventDefault();
109
- e.stopPropagation();
110
- if (this._editState) {
111
- this._advanceCursor();
112
- }
113
- else {
114
- const dataLen = storeLength(this._store);
115
- this._selection = moveSelection(this._selection, `right`, this.columns, dataLen);
116
- this._dispatchSelectEvent();
117
- }
118
- this.requestUpdate();
119
- return;
120
- }
121
- if (e.key === `Escape`) {
122
- e.preventDefault();
123
- e.stopPropagation();
124
- if (this._editState) {
125
- this._editState = null;
126
- }
127
- else if (this._selection && this._selection.kind !== `single`) {
128
- const sel = this._selection;
129
- let firstPos = 0;
130
- if (sel.kind === `contiguous`) {
131
- const c = sel;
132
- firstPos = Math.min(c.start, c.end);
133
- }
134
- if (sel.kind === `rectangular`) {
135
- const r = sel;
136
- firstPos = r.y * bytesPerRow(this.columns) + r.x;
137
- }
138
- this._selection = { kind: `single`, pos: firstPos };
139
- this._dispatchSelectEvent();
140
- }
141
- this.requestUpdate();
142
- return;
143
- }
144
- if (this._editState) {
145
- e.stopPropagation();
146
- if (e.key === `Backspace`) {
147
- this._handleBackspace();
148
- return;
149
- }
150
- if (e.key === `Enter`) {
151
- if (this._editState.side === `hex` && this._editState.partial.startsWith(`.`)) {
152
- this._commitDecimalValue();
153
- }
154
- return;
155
- }
156
- if (e.key.length === 1) {
157
- this._handleValueEntry(e.key);
158
- }
159
- return;
160
- }
161
- if (this._selection && this._selection.kind === `single` && e.key.length === 1) {
162
- e.preventDefault();
163
- e.stopPropagation();
164
- const pos = this._selection.pos;
165
- const side = this._focusSide ?? `hex`;
166
- this._editState = { pos, side, partial: `` };
167
- this._handleValueEntry(e.key);
168
- }
169
- };
170
- }
171
- static { this.styles = css `
172
- :host {
173
- --hex-row-height: 24px;
174
- --hex-offset-width: 8ch;
175
- --hex-font: monospace;
176
- --hex-font-size: 0.85rem;
177
- --hex-changed-weight: bold;
178
-
179
- --ascii-null: #808080;
180
- --ascii-printable: #4caf50;
181
- --ascii-whitespace: #ffffff;
182
- --ascii-control: #f48fb1;
183
- --ascii-other: #ffeb3b;
184
-
185
- --shade-null: #808080;
186
- --shade-max: #ffffff;
187
- --shade-step-start: #ff0000;
188
- --shade-step-end: #0000ff;
189
-
190
- display: block;
191
- font-family: var(--hex-font);
192
- font-size: var(--hex-font-size);
193
- }
194
-
195
- .hex-editor {
196
- display: flex;
197
- flex-direction: column;
198
- height: 300px;
199
- overflow: hidden;
200
- background: #1e1e1e;
201
- color: #e0e0e0;
202
- border: 1px solid #333;
203
- border-radius: 4px;
204
- }
205
-
206
- .scroll-container {
207
- flex: 1;
208
- overflow-y: auto;
209
- position: relative;
210
- }
211
-
212
- .header {
213
- display: flex;
214
- background: #2d2d2d;
215
- font-weight: bold;
216
- border-bottom: 1px solid #444;
217
- height: var(--hex-row-height);
218
- flex-shrink: 0;
219
- align-items: center;
220
- }
221
-
222
- .row {
223
- display: flex;
224
- height: var(--hex-row-height);
225
- align-items: center;
226
- }
227
-
228
- .row:hover {
229
- background: rgba(255, 255, 255, 0.05);
230
- }
231
-
232
- .offset-cell {
233
- width: var(--hex-offset-width);
234
- padding: 0 8px;
235
- text-align: right;
236
- color: #888;
237
- flex-shrink: 0;
238
- box-sizing: border-box;
239
- }
240
-
241
- .col-group {
242
- display: inline-flex;
243
- gap: 4px;
244
- margin-right: 16px;
245
- }
246
-
247
- .col-header {
248
- width: calc(8ch + 28px);
249
- padding: 0 8px;
250
- color: #555;
251
- text-align: right;
252
- flex-shrink: 0;
253
- box-sizing: border-box;
254
- }
255
-
256
- .col-header.active {
257
- color: #aaa;
258
- }
259
-
260
- .text-header {
261
- padding: 4px 8px;
262
- color: #555;
263
- width: calc(var(--columns, 4) * 4 * 1ch);
264
- box-sizing: border-box;
265
- flex-shrink: 0;
266
- }
267
-
268
- .text-header.active {
269
- color: #aaa;
270
- }
271
-
272
- .hex-cell, .text-char {
273
- display: inline-block;
274
- width: 2ch;
275
- text-align: center;
276
- cursor: pointer;
277
- user-select: none;
278
- padding: 2px 0;
279
- }
280
-
281
- .hex-cell.selected, .text-char.selected {
282
- background: rgba(100, 149, 237, 0.4);
283
- }
284
-
285
- .hex-cell.changed, .text-char.changed {
286
- font-weight: var(--hex-changed-weight);
287
- }
288
-
289
- .hex-cell.editing {
290
- background: rgba(255, 215, 0, 0.3);
291
- }
292
-
293
-
294
- .text-area {
295
- display: inline-flex;
296
- gap: 0;
297
- }
298
-
299
- .text-char {
300
- width: 1ch;
301
- text-align: left;
302
- }
303
-
304
- .byte-null { color: var(--ascii-null); }
305
- .byte-printable { color: var(--ascii-printable); }
306
- .byte-whitespace { color: var(--ascii-whitespace); }
307
- .byte-control { color: var(--ascii-control); }
308
- .byte-other { color: var(--ascii-other); }
309
- `; }
310
- setData(data) {
311
- this._store = createHexStore(data);
312
- this._undoStack = createUndoRedoStack();
313
- this._selection = null;
314
- this._editState = null;
315
- this._scrollTop = 0;
316
- this.requestUpdate();
317
- }
318
- undo() {
319
- const diff = undoDiff(this._undoStack);
320
- if (!diff)
321
- return;
322
- const reverse = reverseDiff(diff);
323
- applyDiff(this._store, reverse);
324
- this.requestUpdate();
325
- }
326
- redo() {
327
- const diff = redoDiff(this._undoStack);
328
- if (!diff)
329
- return;
330
- applyDiff(this._store, diff);
331
- this.requestUpdate();
332
- }
333
- recomputeColours() {
334
- const style = getComputedStyle(this);
335
- const nullC = style.getPropertyValue(`--shade-null`).trim() || `#808080`;
336
- const maxC = style.getPropertyValue(`--shade-max`).trim() || `#ffffff`;
337
- const stepStart = style.getPropertyValue(`--shade-step-start`).trim() || `#ff0000`;
338
- const stepEnd = style.getPropertyValue(`--shade-step-end`).trim() || `#0000ff`;
339
- this._shadeMap = createShadeMap(nullC, maxC, stepStart, stepEnd);
340
- this.requestUpdate();
341
- }
342
- *selectedBytes() {
343
- const positions = getSelectedPositions(this._selection, this.columns);
344
- for (let i = 0; i < positions.length; i++) {
345
- const pos = positions[i];
346
- yield {
347
- selection_index: i,
348
- array_index: pos,
349
- value: readByte(this._store, pos),
350
- };
351
- }
352
- }
353
- containsPosition(pos) {
354
- return selectionContains(this._selection, pos, this.columns);
355
- }
356
- selectSingle(position) {
357
- this._selection = { kind: `single`, pos: position };
358
- this._dispatchSelectEvent();
359
- this.requestUpdate();
360
- }
361
- selectContiguous(start, end) {
362
- this._selection = {
363
- kind: `contiguous`,
364
- start: start,
365
- end: end,
366
- };
367
- this._dispatchSelectEvent();
368
- this.requestUpdate();
369
- }
370
- selectRectangular(x, y, width, height) {
371
- this._selection = {
372
- kind: `rectangular`,
373
- x,
374
- y,
375
- width,
376
- height,
377
- };
378
- this._dispatchSelectEvent();
379
- this.requestUpdate();
380
- }
381
- clearSelection() {
382
- this._selection = null;
383
- this._dispatchSelectEvent();
384
- this.requestUpdate();
385
- }
386
- getSelection() {
387
- return this._selection;
388
- }
389
- firstUpdated() {
390
- const container = this.shadowRoot?.querySelector(`.scroll-container`);
391
- if (container) {
392
- const ro = new ResizeObserver((entries) => {
393
- this._containerH = entries[0].contentRect.height;
394
- this.requestUpdate();
395
- });
396
- ro.observe(container);
397
- this._containerH = container.clientHeight;
398
- }
399
- this.recomputeColours();
400
- }
401
- _onPointerDown(pos, side, e) {
402
- e.preventDefault();
403
- if (e.button !== 0)
404
- return;
405
- this.shadowRoot?.querySelector(`.hex-editor`)?.focus();
406
- this._focusSide = side;
407
- const target = e.target;
408
- target.setPointerCapture(e.pointerId);
409
- const bpr = bytesPerRow(this.columns);
410
- const startX = pos % bpr;
411
- const startY = Math.floor(pos / bpr);
412
- if (e.metaKey || e.ctrlKey) {
413
- this._pointerMode = `select-rect`;
414
- this._dragAnchor = pos;
415
- this._rectAnchorX = startX;
416
- this._rectAnchorY = startY;
417
- }
418
- else if (e.shiftKey) {
419
- this._pointerMode = `select-cont`;
420
- if (!this._selection || this._selection.kind !== `single`) {
421
- this._dragAnchor = pos;
422
- }
423
- else {
424
- this._dragAnchor = this._selection.pos;
425
- this._shiftClickTarget = pos;
426
- }
427
- }
428
- else {
429
- this._pointerMode = `pending`;
430
- this._dragStart = { pos, startValue: readByte(this._store, pos), startY: e.clientY, startX: e.clientX };
431
- this._dragAnchor = pos;
432
- this._currentDragDiff = null;
433
- }
434
- }
435
- _onPointerMove(pos, _side, e) {
436
- if (!this._dragStart)
437
- return;
438
- const dy = Math.abs(e.clientY - this._dragStart.startY);
439
- const dx = Math.abs(e.clientX - this._dragStart.startX);
440
- if (this._pointerMode === `pending` && dy > 4 && dy > dx) {
441
- this._pointerMode = `drag-value`;
442
- this._editState = null;
443
- }
444
- if (this._pointerMode === `drag-value`) {
445
- const delta = Math.round((e.clientY - this._dragStart.startY) / 4);
446
- const newValue = Math.max(0, Math.min(255, this._dragStart.startValue - delta));
447
- this._currentDragDiff = writeByte(this._store, pos, newValue);
448
- this.requestUpdate();
449
- }
450
- if (this._pointerMode === `select-cont`) {
451
- if (this._dragAnchor !== null) {
452
- const mode = `contiguous`;
453
- this._selection = selectionFromPointerRange(this._dragAnchor, pos, mode, this.columns);
454
- this._dispatchSelectEvent();
455
- }
456
- }
457
- if (this._pointerMode === `select-rect`) {
458
- const bpr = bytesPerRow(this.columns);
459
- const currentX = pos % bpr;
460
- const currentY = Math.floor(pos / bpr);
461
- const x = Math.min(this._rectAnchorX, currentX);
462
- const y = Math.min(this._rectAnchorY, currentY);
463
- const width = Math.abs(currentX - this._rectAnchorX) + 1;
464
- const height = Math.abs(currentY - this._rectAnchorY) + 1;
465
- this._selection = { kind: `rectangular`, x, y, width, height };
466
- this._dispatchSelectEvent();
467
- }
468
- }
469
- _onPointerUp(pos, side, e) {
470
- const target = e.target;
471
- target.releasePointerCapture(e.pointerId);
472
- if (this._pointerMode === `pending`) {
473
- this._selection = { kind: `single`, pos };
474
- this._initialSelectionPoint = pos;
475
- this._currentCursorPoint = pos;
476
- this._editState = { pos, side, partial: `` };
477
- this._dispatchSelectEvent();
478
- }
479
- if (this._pointerMode === `select-cont`) {
480
- if (this._dragAnchor !== null && this._shiftClickTarget !== null) {
481
- this._selection = {
482
- kind: `contiguous`,
483
- start: this._dragAnchor,
484
- end: this._shiftClickTarget,
485
- };
486
- this._initialSelectionPoint = Math.min(this._dragAnchor, this._shiftClickTarget);
487
- this._currentCursorPoint = Math.max(this._dragAnchor, this._shiftClickTarget);
488
- this._dispatchSelectEvent();
489
- }
490
- else if (this._dragAnchor !== null) {
491
- const mode = `contiguous`;
492
- this._selection = selectionFromPointerRange(this._dragAnchor, pos, mode, this.columns);
493
- this._initialSelectionPoint = this._dragAnchor;
494
- this._currentCursorPoint = pos;
495
- this._dispatchSelectEvent();
496
- }
497
- }
498
- if (this._pointerMode === `select-rect`) {
499
- const bpr = bytesPerRow(this.columns);
500
- const currentX = pos % bpr;
501
- const currentY = Math.floor(pos / bpr);
502
- const x = Math.min(this._rectAnchorX, currentX);
503
- const y = Math.min(this._rectAnchorY, currentY);
504
- const width = Math.abs(currentX - this._rectAnchorX) + 1;
505
- const height = Math.abs(currentY - this._rectAnchorY) + 1;
506
- this._selection = { kind: `rectangular`, x, y, width, height };
507
- this._dispatchSelectEvent();
508
- }
509
- if (this._pointerMode === `drag-value` && this._currentDragDiff) {
510
- pushDiff(this._undoStack, this._currentDragDiff);
511
- this._dispatchChangeEvent(this._currentDragDiff);
512
- }
513
- this._pointerMode = null;
514
- this._dragStart = null;
515
- this._dragAnchor = null;
516
- this._currentDragDiff = null;
517
- this._shiftClickTarget = null;
518
- }
519
- _handleBackspace() {
520
- if (!this._editState)
521
- return;
522
- this._editState = { ...this._editState, partial: `` };
523
- this.requestUpdate();
524
- }
525
- _handleValueEntry(key) {
526
- if (!this._editState)
527
- return;
528
- const { pos, side, partial } = this._editState;
529
- if (side === `text`) {
530
- if (key.length === 1 && key.charCodeAt(0) >= 0x20 && key.charCodeAt(0) <= 0x7E) {
531
- const value = key.charCodeAt(0);
532
- const diff = writeByte(this._store, pos, value);
533
- pushDiff(this._undoStack, diff);
534
- this._dispatchChangeEvent(diff);
535
- this._advanceCursor();
536
- }
537
- return;
538
- }
539
- if (partial === `` && key === `.`) {
540
- this._editState = { ...this._editState, partial: `.` };
541
- this.requestUpdate();
542
- return;
543
- }
544
- if (partial.startsWith(`.`)) {
545
- if (/\d/.test(key)) {
546
- let newPartial = partial + key;
547
- if (Number(newPartial.slice(1)) > 255) {
548
- newPartial = `.255`;
549
- }
550
- this._editState = { ...this._editState, partial: newPartial };
551
- this.requestUpdate();
552
- }
553
- return;
554
- }
555
- const hexChars = `0123456789ABCDEFabcdef`;
556
- if (hexChars.includes(key)) {
557
- const newPartial = (partial + key.toUpperCase()).slice(-2);
558
- this._editState = { ...this._editState, partial: newPartial };
559
- this.requestUpdate();
560
- if (newPartial.length === 2) {
561
- const value = Number.parseInt(newPartial, 16);
562
- const diff = writeByte(this._store, pos, value);
563
- pushDiff(this._undoStack, diff);
564
- this._dispatchChangeEvent(diff);
565
- this._advanceCursor();
566
- }
567
- }
568
- else if (partial !== ``) {
569
- this._editState = { ...this._editState, partial: `` };
570
- this.requestUpdate();
571
- }
572
- }
573
- _commitDecimalValue() {
574
- if (!this._editState)
575
- return;
576
- const value = Number.parseInt(this._editState.partial.slice(1), 10);
577
- if (!isNaN(value)) {
578
- const diff = writeByte(this._store, this._editState.pos, value);
579
- pushDiff(this._undoStack, diff);
580
- this._dispatchChangeEvent(diff);
581
- this._advanceCursor();
582
- }
583
- }
584
- _advanceCursor() {
585
- if (!this._editState)
586
- return;
587
- const dataLen = storeLength(this._store);
588
- const newPos = clampPos(this._editState.pos + 1, dataLen);
589
- this._editState = { pos: newPos, side: this._editState.side, partial: `` };
590
- this._selection = { kind: `single`, pos: newPos };
591
- this.requestUpdate();
592
- }
593
- _dispatchChangeEvent(diff) {
594
- this.dispatchEvent(new CustomEvent(`hex-change`, {
595
- detail: { diff },
596
- bubbles: true,
597
- composed: true,
598
- }));
599
- }
600
- _dispatchSelectEvent() {
601
- const sel = this._selection;
602
- let detail;
603
- if (!sel) {
604
- detail = { type: `none` };
605
- }
606
- else if (sel.kind === `single`) {
607
- detail = { type: `single`, position: sel.pos };
608
- }
609
- else if (sel.kind === `contiguous`) {
610
- detail = { type: `contiguous`, start: sel.start, end: sel.end };
611
- }
612
- else if (sel.kind === `rectangular`) {
613
- detail = { type: `rectangular`, x: sel.x, y: sel.y, width: sel.width, height: sel.height };
614
- }
615
- else {
616
- detail = { type: `none` };
617
- }
618
- this.dispatchEvent(new CustomEvent(`select`, {
619
- detail,
620
- bubbles: true,
621
- composed: true,
622
- }));
623
- }
624
- _copy() {
625
- const positions = getSelectedPositions(this._selection, this.columns);
626
- if (positions.length === 0)
627
- return;
628
- const bytes = positions.map((p) => readByte(this._store, p));
629
- this._copyBuffer = new Uint8Array(bytes);
630
- const hexStr = bytes.map((b) => b.toString(16).padStart(2, `0`)).join(` `);
631
- navigator.clipboard?.writeText(hexStr).catch(() => { });
632
- }
633
- async _paste() {
634
- let bytes = null;
635
- try {
636
- const text = await navigator.clipboard?.readText();
637
- if (text) {
638
- bytes = this._parseHexString(text);
639
- }
640
- }
641
- catch {
642
- // ignore
643
- }
644
- if (!bytes && this._copyBuffer) {
645
- bytes = Array.from(this._copyBuffer);
646
- }
647
- if (!bytes || bytes.length === 0)
648
- return;
649
- if (!this._selection)
650
- return;
651
- const entries = new Map();
652
- if (this._selection.kind === `single`) {
653
- const startPos = this._selection.pos;
654
- const dataLen = storeLength(this._store);
655
- for (let i = 0; i < bytes.length && startPos + i < dataLen; i++) {
656
- entries.set(startPos + i, bytes[i]);
657
- }
658
- }
659
- else if (this._selection.kind === `contiguous`) {
660
- const startPos = Math.min(this._selection.start, this._selection.end);
661
- const endPos = Math.max(this._selection.start, this._selection.end);
662
- const available = endPos - startPos + 1;
663
- for (let i = 0; i < Math.min(bytes.length, available); i++) {
664
- entries.set(startPos + i, bytes[i]);
665
- }
666
- }
667
- else if (this._selection.kind === `rectangular`) {
668
- const { x, y, width, height } = this._selection;
669
- const bpr = bytesPerRow(this.columns);
670
- let byteIdx = 0;
671
- for (let row = 0; row < height && byteIdx < bytes.length; row++) {
672
- for (let col = 0; col < width && byteIdx < bytes.length; col++) {
673
- const pos = (y + row) * bpr + x + col;
674
- entries.set(pos, bytes[byteIdx++]);
675
- }
676
- }
677
- }
678
- if (entries.size > 0) {
679
- const diff = writeBytes(this._store, entries);
680
- pushDiff(this._undoStack, diff);
681
- this._dispatchChangeEvent(diff);
682
- this.requestUpdate();
683
- }
684
- }
685
- _parseHexString(text) {
686
- const bytes = [];
687
- const cleaned = text.replace(/[^0-9A-F]/gi, ` `).trim();
688
- if (!cleaned)
689
- return bytes;
690
- const parts = cleaned.split(/\s+/);
691
- for (const part of parts) {
692
- if (part.length === 1) {
693
- bytes.push(Number.parseInt(part + part, 16));
694
- }
695
- else if (part.length === 2) {
696
- bytes.push(Number.parseInt(part, 16));
697
- }
698
- }
699
- return bytes;
700
- }
701
- _getColHeaders() {
702
- const headers = [];
703
- for (let i = 0; i < this.columns; i++) {
704
- const offset = i * 4;
705
- headers.push(`+${offset.toString(16).toUpperCase()}`);
706
- }
707
- return headers;
708
- }
709
- _isRowShaded(pos) {
710
- const sel = this._selection;
711
- if (!sel || sel.kind !== `single`)
712
- return true;
713
- const bpr = bytesPerRow(this.columns);
714
- const row = Math.floor(pos / bpr);
715
- const selRow = Math.floor(sel.pos / bpr);
716
- return row === selRow;
717
- }
718
- _isHexShaded(pos) {
719
- return this._isRowShaded(pos);
720
- }
721
- _isTextShaded(pos) {
722
- return this._isRowShaded(pos);
723
- }
724
- render() {
725
- const dataLen = storeLength(this._store);
726
- const bpr = bytesPerRow(this.columns);
727
- const totalRows = Math.ceil(dataLen / bpr);
728
- const containerH = this._containerH > 0 ? this._containerH : 280;
729
- const startRow = Math.floor(this._scrollTop / this._rowHeight);
730
- const endRow = Math.min(startRow + Math.ceil(containerH / this._rowHeight) + 2, totalRows);
731
- const topSpacerHeight = startRow * this._rowHeight;
732
- const botSpacerHeight = (totalRows - endRow) * this._rowHeight;
733
- const changeset = getChangeset(this._store);
734
- const colHeaders = this._getColHeaders();
735
- const hexActive = this._focusSide === `hex` || this._focusSide === null;
736
- const textActive = this._focusSide === `text`;
737
- return html `
738
- <div class="hex-editor" tabindex="0" @keydown=${this._onKeyDown} @pointerleave=${() => { }}>
739
- <div class="header">
740
- ${this.hideOffsetCol ? null : html `<span class="offset-cell">Offset</span>`}
741
- ${this.hideHexCol ? null : repeat(colHeaders, h => html `<span class="col-header ${hexActive ? `active` : ``}">${h}</span>`)}
742
- ${this.hideTextCol ? null : html `<span class="text-header ${textActive ? `active` : ``}">Text</span>`}
743
- </div>
744
- <div class="scroll-container" @scroll=${this._onScroll}>
745
- <div style="height: ${topSpacerHeight}px"></div>
746
- ${repeat(Array.from({ length: endRow - startRow }, (_, i) => startRow + i), rowIndex => rowIndex, rowIndex => this._renderRow(rowIndex, changeset))}
747
- <div style="height: ${botSpacerHeight}px"></div>
748
- </div>
749
- </div>
750
- `;
751
- }
752
- _renderRow(rowIndex, changeset) {
753
- const bpr = bytesPerRow(this.columns);
754
- const offset = rowIndex * bpr;
755
- return html `
756
- <div class="row" data-row=${rowIndex}>
757
- ${this.hideOffsetCol ? null : html `<span class="offset-cell">${offset.toString(16).toUpperCase().padStart(6, `0`)}</span>`}
758
- ${this.hideHexCol
759
- ? null
760
- : repeat(Array.from({ length: this.columns }, (_, i) => i), colIndex => colIndex, colIndex => this._renderColumn(rowIndex, colIndex, changeset))}
761
- ${this.hideTextCol
762
- ? null
763
- : html `
764
- <span class="text-area">
765
- ${repeat(Array.from({ length: bpr }, (_, i) => i), i => i, i => this._renderTextChar(offset + i, changeset))}
766
- </span>
767
- `}
768
- </div>
769
- `;
770
- }
771
- _renderColumn(rowIndex, colIndex, changeset) {
772
- const bpr = bytesPerRow(this.columns);
773
- const basePos = rowIndex * bpr + colIndex * 4;
774
- return html `
775
- <span class="col-group">
776
- ${[0, 1, 2, 3].map(b => this._renderHexCell(basePos + b, changeset))}
777
- </span>
778
- `;
779
- }
780
- _renderHexCell(pos, changeset) {
781
- const dataLen = storeLength(this._store);
782
- if (pos >= dataLen) {
783
- return html `<span class="hex-cell"></span>`;
784
- }
785
- const byte = readByte(this._store, pos);
786
- const hexStr = byte.toString(16).toUpperCase().padStart(2, `0`);
787
- const isSelected = selectionContains(this._selection, pos, this.columns);
788
- const isChanged = this.showChangeset && changeset.has(pos);
789
- const isEditing = this._editState?.pos === pos;
790
- const classes = [`hex-cell`];
791
- if (isSelected)
792
- classes.push(`selected`);
793
- if (isChanged)
794
- classes.push(`changed`);
795
- if (isEditing)
796
- classes.push(`editing`);
797
- if (this._isHexShaded(pos))
798
- classes.push(`shaded`);
799
- let displayText = hexStr;
800
- let colourStyle;
801
- if (isEditing && this._editState) {
802
- displayText = this._editState.partial === `` ? hexStr : `${this._editState.partial}_`;
803
- }
804
- if (this.colourScheme === `shade` && this._shadeMap) {
805
- colourStyle = { color: this._shadeMap.forByte(byte) };
806
- }
807
- else if (this.colourScheme === `ascii`) {
808
- classes.push(getAsciiClass(byte));
809
- }
810
- return html `
811
- <span
812
- class=${classes.join(` `)}
813
- style=${styleMap(colourStyle || {})}
814
- @pointerdown=${(e) => this._onPointerDown(pos, `hex`, e)}
815
- @pointerup=${(e) => this._onPointerUp(pos, `hex`, e)}
816
- @pointermove=${(e) => this._onPointerMove(pos, `hex`, e)}
817
- >${displayText}</span>
818
- `;
819
- }
820
- _renderTextChar(pos, changeset) {
821
- const dataLen = storeLength(this._store);
822
- if (pos >= dataLen) {
823
- return html `<span class="text-char"></span>`;
824
- }
825
- const byte = readByte(this._store, pos);
826
- const char = byte >= 0x20 && byte <= 0x7E ? String.fromCharCode(byte) : `.`;
827
- const isSelected = selectionContains(this._selection, pos, this.columns);
828
- const isChanged = this.showChangeset && changeset.has(pos);
829
- const classes = [`text-char`];
830
- if (isSelected)
831
- classes.push(`selected`);
832
- if (isChanged)
833
- classes.push(`changed`);
834
- if (this._isTextShaded(pos))
835
- classes.push(`shaded`);
836
- let colourStyle;
837
- if (this.colourScheme === `shade` && this._shadeMap) {
838
- colourStyle = { color: this._shadeMap.forByte(byte) };
839
- }
840
- else if (this.colourScheme === `ascii`) {
841
- classes.push(getAsciiClass(byte));
842
- }
843
- return html `
844
- <span
845
- class=${classes.join(` `)}
846
- style=${styleMap(colourStyle || {})}
847
- @pointerdown=${(e) => this._onPointerDown(pos, `text`, e)}
848
- @pointerup=${(e) => this._onPointerUp(pos, `text`, e)}
849
- @pointermove=${(e) => this._onPointerMove(pos, `text`, e)}
850
- >${char}</span>
851
- `;
852
- }
853
- };
854
- __decorate([
855
- property({ type: Number })
856
- ], IxfxHexEditorElement.prototype, "columns", void 0);
857
- __decorate([
858
- property({ type: String })
859
- ], IxfxHexEditorElement.prototype, "colourScheme", void 0);
860
- __decorate([
861
- property({ type: Boolean })
862
- ], IxfxHexEditorElement.prototype, "showChangeset", void 0);
863
- __decorate([
864
- property({ type: Boolean, attribute: `hide-offset-col` })
865
- ], IxfxHexEditorElement.prototype, "hideOffsetCol", void 0);
866
- __decorate([
867
- property({ type: Boolean, attribute: `hide-hex-col` })
868
- ], IxfxHexEditorElement.prototype, "hideHexCol", void 0);
869
- __decorate([
870
- property({ type: Boolean, attribute: `hide-text-col` })
871
- ], IxfxHexEditorElement.prototype, "hideTextCol", void 0);
872
- __decorate([
873
- state()
874
- ], IxfxHexEditorElement.prototype, "_selection", void 0);
875
- __decorate([
876
- state()
877
- ], IxfxHexEditorElement.prototype, "_scrollTop", void 0);
878
- __decorate([
879
- state()
880
- ], IxfxHexEditorElement.prototype, "_editState", void 0);
881
- __decorate([
882
- state()
883
- ], IxfxHexEditorElement.prototype, "_containerH", void 0);
884
- __decorate([
885
- state()
886
- ], IxfxHexEditorElement.prototype, "_shadeMap", void 0);
887
- __decorate([
888
- state()
889
- ], IxfxHexEditorElement.prototype, "_focusSide", void 0);
890
- IxfxHexEditorElement = __decorate([
891
- customElement(`ixfx-hex-editor`)
892
- ], IxfxHexEditorElement);
893
- export { IxfxHexEditorElement };
894
- //# sourceMappingURL=hex-editor.js.map