@lavalogic/scoria 0.11.14 → 0.12.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 (407) hide show
  1. package/dist/Components/Action.svelte +7 -32
  2. package/dist/Components/Action.svelte.d.ts +1 -27
  3. package/dist/Components/ActionProps.d.ts +27 -0
  4. package/dist/Components/ActionProps.js +1 -0
  5. package/dist/Components/AlertModal.svelte +7 -5
  6. package/dist/Components/Base/ContextWrapper.svelte +4 -9
  7. package/dist/Components/Base/ContextWrapper.svelte.d.ts +1 -5
  8. package/dist/Components/Base/ContextWrapperProps.d.ts +5 -0
  9. package/dist/Components/Base/ContextWrapperProps.js +1 -0
  10. package/dist/Components/Base/Pagination.svelte +22 -31
  11. package/dist/Components/Base/Pagination.svelte.d.ts +1 -12
  12. package/dist/Components/Base/PaginationProps.d.ts +12 -0
  13. package/dist/Components/Base/PaginationProps.js +1 -0
  14. package/dist/Components/BigRadioSet.svelte +4 -11
  15. package/dist/Components/BigRadioSet.svelte.d.ts +1 -6
  16. package/dist/Components/BigRadioSetProps.d.ts +6 -0
  17. package/dist/Components/BigRadioSetProps.js +1 -0
  18. package/dist/Components/Bubble.svelte +4 -21
  19. package/dist/Components/Bubble.svelte.d.ts +1 -18
  20. package/dist/Components/BubbleColour.d.ts +5 -0
  21. package/dist/Components/BubbleColour.js +1 -0
  22. package/dist/Components/BubbleProps.d.ts +14 -0
  23. package/dist/Components/BubbleProps.js +1 -0
  24. package/dist/Components/Button.svelte +21 -48
  25. package/dist/Components/Button.svelte.d.ts +1 -29
  26. package/dist/Components/ButtonProps.d.ts +29 -0
  27. package/dist/Components/ButtonProps.js +1 -0
  28. package/dist/Components/Checkbox.svelte +4 -21
  29. package/dist/Components/Checkbox.svelte.d.ts +2 -2
  30. package/dist/Components/CollapsibleCard.svelte +3 -15
  31. package/dist/Components/CollapsibleCard.svelte.d.ts +2 -10
  32. package/dist/Components/CollapsibleCardProps.d.ts +9 -0
  33. package/dist/Components/CollapsibleCardProps.js +1 -0
  34. package/dist/Components/Contexts/ContextMenu.svelte +14 -11
  35. package/dist/Components/Contexts/ContextMenuOption.svelte +2 -11
  36. package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +1 -7
  37. package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +7 -0
  38. package/dist/Components/Contexts/ContextMenuOptionProps.js +1 -0
  39. package/dist/Components/Contexts/Toast.svelte +1 -6
  40. package/dist/Components/Contexts/Toast.svelte.d.ts +1 -5
  41. package/dist/Components/Contexts/ToastContainer.svelte +4 -1
  42. package/dist/Components/Contexts/ToastProps.d.ts +5 -0
  43. package/dist/Components/Contexts/ToastProps.js +1 -0
  44. package/dist/Components/Contexts/Tooltip.svelte +1 -4
  45. package/dist/Components/DataMatrixIcon.svelte +3 -11
  46. package/dist/Components/DataMatrixIcon.svelte.d.ts +1 -6
  47. package/dist/Components/DataMatrixIconProps.d.ts +6 -0
  48. package/dist/Components/DataMatrixIconProps.js +1 -0
  49. package/dist/Components/DateInput.svelte +3 -42
  50. package/dist/Components/DateInput.svelte.d.ts +1 -40
  51. package/dist/Components/DateInputProps.d.ts +3 -0
  52. package/dist/Components/DateInputProps.js +1 -0
  53. package/dist/Components/DateOnlyInputProps.d.ts +21 -0
  54. package/dist/Components/DateOnlyInputProps.js +1 -0
  55. package/dist/Components/DatePicker.svelte +26 -36
  56. package/dist/Components/DatePicker.svelte.d.ts +1 -8
  57. package/dist/Components/DatePickerProps.d.ts +8 -0
  58. package/dist/Components/DatePickerProps.js +1 -0
  59. package/dist/Components/DateTimeInputProps.d.ts +21 -0
  60. package/dist/Components/DateTimeInputProps.js +1 -0
  61. package/dist/Components/DesktopModal.svelte +3 -25
  62. package/dist/Components/DesktopModal.svelte.d.ts +1 -20
  63. package/dist/Components/DesktopModalProps.d.ts +20 -0
  64. package/dist/Components/DesktopModalProps.js +1 -0
  65. package/dist/Components/Dial.svelte +2 -18
  66. package/dist/Components/Dial.svelte.d.ts +1 -13
  67. package/dist/Components/DialProps.d.ts +13 -0
  68. package/dist/Components/DialProps.js +1 -0
  69. package/dist/Components/DimensionInput.svelte +21 -48
  70. package/dist/Components/DimensionInput.svelte.d.ts +1 -29
  71. package/dist/Components/DimensionInputProps.d.ts +29 -0
  72. package/dist/Components/DimensionInputProps.js +1 -0
  73. package/dist/Components/DragMenu/DragMenuHolder.svelte +10 -57
  74. package/dist/Components/DragMenu/DragMenuHolder.svelte.d.ts +1 -17
  75. package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +10 -0
  76. package/dist/Components/DragMenu/DragMenuHolderProps.js +1 -0
  77. package/dist/Components/DragMenu/Draggable.d.ts +8 -0
  78. package/dist/Components/DragMenu/Draggable.js +1 -0
  79. package/dist/Components/DragMenu/DraggableCard.svelte +6 -14
  80. package/dist/Components/DragMenu/DraggableCard.svelte.d.ts +1 -9
  81. package/dist/Components/DragMenu/DraggableCardProps.d.ts +9 -0
  82. package/dist/Components/DragMenu/DraggableCardProps.js +1 -0
  83. package/dist/Components/FileCard.svelte +1 -7
  84. package/dist/Components/FileCard.svelte.d.ts +1 -4
  85. package/dist/Components/FileCardProps.d.ts +4 -0
  86. package/dist/Components/FileCardProps.js +1 -0
  87. package/dist/Components/FileUpload.svelte +9 -31
  88. package/dist/Components/FileUpload.svelte.d.ts +1 -24
  89. package/dist/Components/FileUploadProps.d.ts +24 -0
  90. package/dist/Components/FileUploadProps.js +1 -0
  91. package/dist/Components/GridInput.svelte +30 -28
  92. package/dist/Components/GridInput.svelte.d.ts +1 -6
  93. package/dist/Components/GridInputProps.d.ts +7 -0
  94. package/dist/Components/GridInputProps.js +1 -0
  95. package/dist/Components/GridInputSet.svelte +2 -11
  96. package/dist/Components/GridInputSet.svelte.d.ts +1 -6
  97. package/dist/Components/GridInputSetProps.d.ts +7 -0
  98. package/dist/Components/GridInputSetProps.js +1 -0
  99. package/dist/Components/HorizontalTabGroup.svelte +3 -16
  100. package/dist/Components/HorizontalTabGroup.svelte.d.ts +2 -11
  101. package/dist/Components/HorizontalTabGroupButton.svelte +11 -15
  102. package/dist/Components/HorizontalTabGroupButton.svelte.d.ts +2 -6
  103. package/dist/Components/HorizontalTabGroupProps.d.ts +10 -0
  104. package/dist/Components/HorizontalTabGroupProps.js +1 -0
  105. package/dist/Components/Icon.svelte +5 -1257
  106. package/dist/Components/Icon.svelte.d.ts +1 -884
  107. package/dist/Components/IconProps.d.ts +24 -0
  108. package/dist/Components/IconProps.js +1 -0
  109. package/dist/Components/Icons.d.ts +858 -0
  110. package/dist/Components/Icons.js +1222 -0
  111. package/dist/Components/InputProps.d.ts +15 -0
  112. package/dist/Components/InputProps.js +1 -0
  113. package/dist/Components/LoadingModal.svelte +2 -2
  114. package/dist/Components/Modal.svelte +24 -25
  115. package/dist/Components/Modal.svelte.d.ts +3 -6
  116. package/dist/Components/MultiSelect.svelte +35 -73
  117. package/dist/Components/MultiSelect.svelte.d.ts +14 -37
  118. package/dist/Components/MultiSelectCommonProps.d.ts +16 -0
  119. package/dist/Components/MultiSelectCommonProps.js +1 -0
  120. package/dist/Components/MultiSelectProps.d.ts +4 -0
  121. package/dist/Components/MultiSelectProps.js +1 -0
  122. package/dist/Components/MultiSelectPropsAsObject.d.ts +6 -0
  123. package/dist/Components/MultiSelectPropsAsObject.js +1 -0
  124. package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
  125. package/dist/Components/MultiSelectPropsAsPrimitive.js +1 -0
  126. package/dist/Components/NumberInput.svelte +8 -37
  127. package/dist/Components/NumberInput.svelte.d.ts +1 -29
  128. package/dist/Components/NumberInputProps.d.ts +29 -0
  129. package/dist/Components/NumberInputProps.js +1 -0
  130. package/dist/Components/PartialIconProps.d.ts +4 -0
  131. package/dist/Components/PartialIconProps.js +1 -0
  132. package/dist/Components/PasswordInput.svelte +4 -22
  133. package/dist/Components/PasswordInput.svelte.d.ts +1 -15
  134. package/dist/Components/Portal.svelte +3 -9
  135. package/dist/Components/Portal.svelte.d.ts +1 -5
  136. package/dist/Components/PortalProps.d.ts +5 -0
  137. package/dist/Components/PortalProps.js +1 -0
  138. package/dist/Components/ProgressBubble.svelte +20 -22
  139. package/dist/Components/ProgressBubble.svelte.d.ts +2 -6
  140. package/dist/Components/ProgressBubbleProps.d.ts +5 -0
  141. package/dist/Components/ProgressBubbleProps.js +1 -0
  142. package/dist/Components/QuerySelect.svelte +70 -49
  143. package/dist/Components/QuerySelect.svelte.d.ts +3 -3
  144. package/dist/Components/SingleSelect.svelte +28 -71
  145. package/dist/Components/SingleSelect.svelte.d.ts +2 -37
  146. package/dist/Components/SingleSelectCommonProps.d.ts +27 -0
  147. package/dist/Components/SingleSelectCommonProps.js +1 -0
  148. package/dist/Components/SingleSelectProps.d.ts +4 -0
  149. package/dist/Components/SingleSelectProps.js +1 -0
  150. package/dist/Components/SingleSelectPropsAsObject.d.ts +6 -0
  151. package/dist/Components/SingleSelectPropsAsObject.js +1 -0
  152. package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +6 -0
  153. package/dist/Components/SingleSelectPropsAsPrimitive.js +1 -0
  154. package/dist/Components/Switch.svelte +2 -13
  155. package/dist/Components/Switch.svelte.d.ts +1 -9
  156. package/dist/Components/SwitchProps.d.ts +9 -0
  157. package/dist/Components/SwitchProps.js +1 -0
  158. package/dist/Components/TabGroupButtonProps.d.ts +5 -0
  159. package/dist/Components/TabGroupButtonProps.js +1 -0
  160. package/dist/Components/Table/Body/HeightData.d.ts +6 -0
  161. package/dist/Components/Table/Body/HeightData.js +1 -0
  162. package/dist/Components/Table/Body/QuickSearchCell.svelte +59 -82
  163. package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +1 -6
  164. package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
  165. package/dist/Components/Table/Body/QuickSearchCellProps.js +1 -0
  166. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +4 -9
  167. package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +1 -5
  168. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +5 -0
  169. package/dist/Components/Table/Body/Rows/ColumnHighlightProps.js +1 -0
  170. package/dist/Components/Table/Body/Rows/ColumnList.svelte +5 -10
  171. package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +1 -3
  172. package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +3 -0
  173. package/dist/Components/Table/Body/Rows/ColumnListProps.js +1 -0
  174. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +15 -25
  175. package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +1 -4
  176. package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +4 -0
  177. package/dist/Components/Table/Body/Rows/ColumnListRowProps.js +1 -0
  178. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +7 -11
  179. package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte.d.ts +1 -4
  180. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +4 -0
  181. package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.js +1 -0
  182. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +39 -48
  183. package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +1 -4
  184. package/dist/Components/Table/Body/Rows/Columns/ActionsCellProps.d.ts +4 -0
  185. package/dist/Components/Table/Body/Rows/Columns/ActionsCellProps.js +1 -0
  186. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +5 -0
  187. package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.js +1 -0
  188. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
  189. package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.js +1 -0
  190. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +26 -25
  191. package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +1 -4
  192. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +11 -18
  193. package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte.d.ts +13 -19
  194. package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.d.ts +7 -0
  195. package/dist/Components/Table/Body/Rows/Columns/ExpandCellProps.js +1 -0
  196. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +10 -16
  197. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +1 -6
  198. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +6 -0
  199. package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.js +1 -0
  200. package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +22 -15
  201. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +5 -0
  202. package/dist/Components/Table/Body/Rows/Columns/SelectColumn.js +1 -0
  203. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +5 -0
  204. package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.js +1 -0
  205. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +7 -20
  206. package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +1 -9
  207. package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +17 -20
  208. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +38 -22
  209. package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +2 -2
  210. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +41 -34
  211. package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +1 -4
  212. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +4 -0
  213. package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.js +1 -0
  214. package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +67 -46
  215. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +5 -0
  216. package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.js +1 -0
  217. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +5 -0
  218. package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.js +1 -0
  219. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +93 -105
  220. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +1 -12
  221. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +4 -0
  222. package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.js +1 -0
  223. package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +4 -2
  224. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +78 -65
  225. package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +1 -12
  226. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +4 -0
  227. package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.js +1 -0
  228. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +82 -59
  229. package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +1 -4
  230. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +4 -0
  231. package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.js +1 -0
  232. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +10 -15
  233. package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte.d.ts +1 -4
  234. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.d.ts +4 -0
  235. package/dist/Components/Table/Body/Rows/Columns/ValidityCellProps.js +1 -0
  236. package/dist/Components/Table/Body/Rows/TableRow.svelte +38 -31
  237. package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +1 -8
  238. package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +8 -0
  239. package/dist/Components/Table/Body/Rows/TableRowProps.js +1 -0
  240. package/dist/Components/Table/Body/TableBody.svelte +10 -21
  241. package/dist/Components/Table/Body/TableBody.svelte.d.ts +1 -12
  242. package/dist/Components/Table/Body/TableBodyProps.d.ts +8 -0
  243. package/dist/Components/Table/Body/TableBodyProps.js +1 -0
  244. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.d.ts +2 -4
  245. package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +159 -161
  246. package/dist/Components/Table/Headers/HighlightAllHeader.svelte +8 -5
  247. package/dist/Components/Table/Headers/SelectAllHeader.svelte +1 -1
  248. package/dist/Components/Table/Headers/TableHead.svelte +29 -18
  249. package/dist/Components/Table/Misc/ColumnPanel.svelte +4 -4
  250. package/dist/Components/Table/Misc/ColumnPanelModal.svelte +5 -10
  251. package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +1 -3
  252. package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +3 -0
  253. package/dist/Components/Table/Misc/ColumnPanelModalProps.js +1 -0
  254. package/dist/Components/Table/Misc/FilterInput.svelte +75 -145
  255. package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +1 -16
  256. package/dist/Components/Table/Misc/FilterInputProps.d.ts +6 -0
  257. package/dist/Components/Table/Misc/FilterInputProps.js +1 -0
  258. package/dist/Components/Table/Misc/FilterPanelModal.svelte +2 -5
  259. package/dist/Components/Table/Misc/TableFooter.svelte +22 -21
  260. package/dist/Components/Table/Misc/TableHorizontalBar.svelte +7 -5
  261. package/dist/Components/Table/Misc/TableSidebar.svelte +2 -2
  262. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +2 -7
  263. package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +1 -3
  264. package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +3 -0
  265. package/dist/Components/Table/Misc/ToolboxPanelModalProps.js +1 -0
  266. package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +5 -0
  267. package/dist/Components/Table/Misc/numberDateFilterTypes.js +13 -0
  268. package/dist/Components/Table/Misc/stringFilterTypes.d.ts +5 -0
  269. package/dist/Components/Table/Misc/stringFilterTypes.js +15 -0
  270. package/dist/Components/Table/NestedTable.svelte +5 -3
  271. package/dist/Components/Table/NestedTable.svelte.d.ts +1 -1
  272. package/dist/Components/Table/Table.svelte +72 -40
  273. package/dist/Components/Table/Table.svelte.d.ts +1 -1
  274. package/dist/Components/Table/Types/Columns/Column.d.ts +1 -1
  275. package/dist/Components/Table/Types/Columns/DateColumn.d.ts +1 -1
  276. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +1 -2
  277. package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +2 -0
  278. package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +2 -2
  279. package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +3 -3
  280. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +1 -1
  281. package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +3 -2
  282. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +3 -3
  283. package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +1 -1
  284. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +6 -7
  285. package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +4 -1
  286. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +2 -2
  287. package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +1 -1
  288. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +2 -2
  289. package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +1 -1
  290. package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +3 -2
  291. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +1 -3
  292. package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +4 -3
  293. package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +1 -1
  294. package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +2 -2
  295. package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +2 -2
  296. package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +1 -1
  297. package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +2 -1
  298. package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +1 -1
  299. package/dist/Components/Table/Types/Context/ITable.d.ts +8 -8
  300. package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +1 -1
  301. package/dist/Components/Table/Types/Context/Row.d.ts +4 -4
  302. package/dist/Components/Table/Types/Context/RowModel.d.ts +1 -1
  303. package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +13 -17
  304. package/dist/Components/Table/Types/Context/TableContext.svelte.js +260 -304
  305. package/dist/Components/Table/Types/Context/TableSettings.d.ts +8 -0
  306. package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +6 -6
  307. package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +1 -1
  308. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +2 -2
  309. package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +10 -8
  310. package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +1 -1
  311. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +5 -5
  312. package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +5 -3
  313. package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +1 -1
  314. package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +1 -1
  315. package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +3 -2
  316. package/dist/Components/TextArea.svelte +2 -30
  317. package/dist/Components/TextArea.svelte.d.ts +1 -26
  318. package/dist/Components/TextAreaProps.d.ts +26 -0
  319. package/dist/Components/TextAreaProps.js +1 -0
  320. package/dist/Components/TextInput.svelte +6 -40
  321. package/dist/Components/TextInput.svelte.d.ts +1 -31
  322. package/dist/Components/TextInputProps.d.ts +31 -0
  323. package/dist/Components/TextInputProps.js +1 -0
  324. package/dist/Components/ThreeStateRadio.svelte +4 -23
  325. package/dist/Components/ThreeStateRadio.svelte.d.ts +1 -19
  326. package/dist/Components/ThreeStateRadioProps.d.ts +19 -0
  327. package/dist/Components/ThreeStateRadioProps.js +1 -0
  328. package/dist/Components/Touch/BoolCard.svelte +3 -2
  329. package/dist/Components/Touch/DateModal.svelte +23 -11
  330. package/dist/Components/Touch/DefaultTimer.d.ts +5 -0
  331. package/dist/Components/Touch/DefaultTimer.js +1 -0
  332. package/dist/Components/Touch/EditCard.svelte +3 -17
  333. package/dist/Components/Touch/EditCard.svelte.d.ts +1 -12
  334. package/dist/Components/Touch/EditCardProps.d.ts +12 -0
  335. package/dist/Components/Touch/EditCardProps.js +1 -0
  336. package/dist/Components/Touch/InfoCard.svelte +3 -12
  337. package/dist/Components/Touch/InfoCard.svelte.d.ts +1 -8
  338. package/dist/Components/Touch/InfoCardProps.d.ts +8 -0
  339. package/dist/Components/Touch/InfoCardProps.js +1 -0
  340. package/dist/Components/Touch/InfoTextCard.svelte +3 -12
  341. package/dist/Components/Touch/InfoTextCard.svelte.d.ts +1 -7
  342. package/dist/Components/Touch/InfoTextCardProps.d.ts +7 -0
  343. package/dist/Components/Touch/InfoTextCardProps.js +1 -0
  344. package/dist/Components/Touch/KeyValuePair.d.ts +4 -0
  345. package/dist/Components/Touch/KeyValuePair.js +1 -0
  346. package/dist/Components/Touch/NumberKeyboard.svelte +54 -37
  347. package/dist/Components/Touch/NumberKeyboard.svelte.d.ts +1 -11
  348. package/dist/Components/Touch/NumberKeyboardProps.d.ts +11 -0
  349. package/dist/Components/Touch/NumberKeyboardProps.js +1 -0
  350. package/dist/Components/Touch/NumberModal.svelte +19 -26
  351. package/dist/Components/Touch/NumberModal.svelte.d.ts +1 -15
  352. package/dist/Components/Touch/NumberModalProps.d.ts +15 -0
  353. package/dist/Components/Touch/NumberModalProps.js +1 -0
  354. package/dist/Components/Touch/PlusMinusCard.svelte +6 -2
  355. package/dist/Components/Touch/SelectModal.svelte +26 -27
  356. package/dist/Components/Touch/SelectModal.svelte.d.ts +1 -8
  357. package/dist/Components/Touch/SelectModalProps.d.ts +8 -0
  358. package/dist/Components/Touch/SelectModalProps.js +1 -0
  359. package/dist/Components/Touch/SummaryCard.svelte +3 -20
  360. package/dist/Components/Touch/SummaryCard.svelte.d.ts +1 -15
  361. package/dist/Components/Touch/SummaryCardProps.d.ts +12 -0
  362. package/dist/Components/Touch/SummaryCardProps.js +1 -0
  363. package/dist/Components/Touch/TextAreaModal.svelte +20 -23
  364. package/dist/Components/Touch/TextAreaModal.svelte.d.ts +1 -12
  365. package/dist/Components/Touch/TextAreaModalProps.d.ts +12 -0
  366. package/dist/Components/Touch/TextAreaModalProps.js +1 -0
  367. package/dist/Components/Touch/TextModal.svelte +24 -33
  368. package/dist/Components/Touch/TextModal.svelte.d.ts +1 -19
  369. package/dist/Components/Touch/TextModalProps.d.ts +19 -0
  370. package/dist/Components/Touch/TextModalProps.js +1 -0
  371. package/dist/Components/Touch/TouchCard.svelte +2 -11
  372. package/dist/Components/Touch/TouchCard.svelte.d.ts +1 -6
  373. package/dist/Components/Touch/TouchCardProps.d.ts +6 -0
  374. package/dist/Components/Touch/TouchCardProps.js +1 -0
  375. package/dist/Components/Touch/TouchModal.svelte +14 -46
  376. package/dist/Components/Touch/TouchModal.svelte.d.ts +1 -31
  377. package/dist/Components/Touch/TouchModalProps.d.ts +27 -0
  378. package/dist/Components/Touch/TouchModalProps.js +1 -0
  379. package/dist/Components/Touch/UtilityButton.svelte +5 -23
  380. package/dist/Components/Touch/UtilityButton.svelte.d.ts +1 -20
  381. package/dist/Components/Touch/UtilityButtonProps.d.ts +20 -0
  382. package/dist/Components/Touch/UtilityButtonProps.js +1 -0
  383. package/dist/Components/VerticalTabGroup.svelte +2 -12
  384. package/dist/Components/VerticalTabGroup.svelte.d.ts +1 -10
  385. package/dist/Components/VerticalTabGroupButton.svelte +18 -20
  386. package/dist/Components/VerticalTabGroupButton.svelte.d.ts +23 -6
  387. package/dist/Components/VerticalTabGroupProps.d.ts +10 -0
  388. package/dist/Components/VerticalTabGroupProps.js +1 -0
  389. package/dist/Contexts/ContextMenuContext.svelte.d.ts +3 -3
  390. package/dist/Contexts/ToastContext.svelte.d.ts +1 -1
  391. package/dist/Contexts/ToastContext.svelte.js +4 -2
  392. package/dist/Contexts/UntypedInputContext.svelte.d.ts +2 -2
  393. package/dist/Contexts/UntypedInputContext.svelte.js +10 -12
  394. package/dist/Helpers/Datamatrix.d.ts +1 -2
  395. package/dist/Helpers/Helpers.svelte.d.ts +8 -3
  396. package/dist/Helpers/Helpers.svelte.js +44 -8
  397. package/dist/Types/Examples/ExampleItem.d.ts +1 -1
  398. package/dist/Types/Examples/ExampleModal.svelte +1 -1
  399. package/dist/Types/Internal/AttributeOperation.js +0 -2
  400. package/dist/Types/Internal/CallbackButton.d.ts +1 -1
  401. package/dist/Types/Internal/GridItem.d.ts +1 -1
  402. package/dist/Types/Internal/GridMultiSelectItem.d.ts +2 -2
  403. package/dist/Types/Internal/GridSelectItem.d.ts +1 -1
  404. package/dist/Types/Internal/TabOption.d.ts +1 -1
  405. package/dist/index.d.ts +158 -73
  406. package/dist/index.js +80 -51
  407. package/package.json +15 -14
@@ -5,9 +5,9 @@
5
5
  import TouchModal from '../../Touch/TouchModal.svelte';
6
6
  import { Size } from '../../../Types/Internal/Size.js';
7
7
  import { Variant } from '../../../Types/Internal/Variant.js';
8
+ import { getContext } from 'svelte';
8
9
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
9
10
  import FilterInput from './FilterInput.svelte';
10
- import { getContext } from 'svelte';
11
11
 
12
12
  export interface FilterPanelModalProps {
13
13
  onclose?: () => void;
@@ -18,13 +18,10 @@
18
18
  const tableContext = getContext<TableContext<T>>(TableContext.identifier);
19
19
 
20
20
  const { onclose }: FilterPanelModalProps = $props();
21
- const refs: FilterInput<T>[] = $state([]);
21
+ const refs: Array<FilterInput<T>> = $state([]);
22
22
 
23
23
  function reset() {
24
24
  tableContext.paginationRepo?.resetFilters();
25
- refs.forEach((ref) => {
26
- ref.reset();
27
- });
28
25
  }
29
26
  </script>
30
27
 
@@ -7,15 +7,15 @@
7
7
  import NumberInput from '../../NumberInput.svelte';
8
8
  import SingleSelect from '../../SingleSelect.svelte';
9
9
  import { AlertContext } from '../../../Contexts/AlertContext.svelte.js';
10
- import { autoPluralise } from '../../../Helpers/Helpers.svelte.js';
10
+ import { autoPluralise, devCatch } from '../../../Helpers/Helpers.svelte.js';
11
11
  import { Colour, ColourSet } from '../../../scss/colours.js';
12
+ import type { SelectOption } from '../../../Types/Internal/SelectOption.js';
12
13
  import { Side } from '../../../Types/Internal/Side.js';
13
14
  import { Size } from '../../../Types/Internal/Size.js';
14
15
  import { Variant } from '../../../Types/Internal/Variant.js';
15
16
  import { getContext, tick } from 'svelte';
16
17
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
17
18
  import { FilterType } from '../Types/Filtering/FilterType.js';
18
- import type { SelectOption } from '../../../Types/Internal/SelectOption.js';
19
19
 
20
20
  export interface TableFooterProps {
21
21
  onkeydown?: (e: KeyboardEvent) => void;
@@ -28,7 +28,7 @@
28
28
  const tableContext = getContext<TableContext<T>>(TableContext.identifier);
29
29
  const alertContext = getContext<AlertContext>(AlertContext.identifier);
30
30
 
31
- const pageSizes: SelectOption<number>[] = $state([
31
+ const pageSizes: Array<SelectOption<number>> = $state([
32
32
  { label: '20', value: 20 },
33
33
  { label: '40', value: 40 },
34
34
  { label: '60', value: 60 },
@@ -48,7 +48,7 @@
48
48
  $effect.pre(() => {
49
49
  if (tableContext.paginationRepo) {
50
50
  const found = pageSizes.find(
51
- (size) => size.value === tableContext.paginationRepo!.paginationState.pageSize
51
+ (size) => size.value === tableContext.paginationRepo?.paginationState.pageSize
52
52
  );
53
53
 
54
54
  if (found) {
@@ -73,14 +73,16 @@
73
73
  clearTimeout(debounceTimeout);
74
74
  if (!isNaN(page)) {
75
75
  debounceTimeout = setTimeout(() => {
76
- tableContext.paginationRepo?.setPage?.(page);
77
- tick().then(() => {
78
- //force rerender
79
- if (pageValue == (tableContext.paginationRepo?.paginationState.pageIndex ?? 0) + 1) {
80
- pageValue = 0;
81
- pageValue = (tableContext.paginationRepo?.paginationState.pageIndex ?? 0) + 1;
82
- }
83
- });
76
+ tableContext.paginationRepo?.setPage(page);
77
+ tick()
78
+ .then(() => {
79
+ //force rerender
80
+ if (pageValue == (tableContext.paginationRepo?.paginationState.pageIndex ?? 0) + 1) {
81
+ pageValue = 0;
82
+ pageValue = (tableContext.paginationRepo?.paginationState.pageIndex ?? 0) + 1;
83
+ }
84
+ })
85
+ .catch(devCatch);
84
86
  }, 400) as unknown as number;
85
87
  }
86
88
  }
@@ -89,7 +91,7 @@
89
91
  pageValue = (tableContext.paginationRepo?.paginationState.pageIndex ?? 0) + 1;
90
92
  });
91
93
 
92
- let pageButtons: number[] = $state([]);
94
+ let pageButtons: Array<number> = $state([]);
93
95
 
94
96
  $effect(() => {
95
97
  if (tableContext.paginationRepo?.paginationState.pageIndex == null) {
@@ -101,7 +103,7 @@
101
103
  );
102
104
  const pageToStartWith = Math.max(1, Math.min(startingPage, tableContext.lastPage - 4));
103
105
 
104
- pageButtons = new Array(Math.min(tableContext.lastPage, 5))
106
+ pageButtons = new Array<number>(Math.min(tableContext.lastPage, 5))
105
107
  .fill(pageToStartWith)
106
108
  .map((item, index) => item + index);
107
109
  }
@@ -124,7 +126,7 @@
124
126
  >
125
127
  <div class="block">
126
128
  <span
127
- >Actioning: {tableContext.dataRepo?.filterType === FilterType.Real ? 'Loaded' : 'All'} Records</span
129
+ >Actioning: {tableContext.dataRepo.filterType === FilterType.Real ? 'Loaded' : 'All'} Records</span
128
130
  >
129
131
  </div>
130
132
 
@@ -189,7 +191,7 @@
189
191
  name="Page Size"
190
192
  borderless
191
193
  creatable
192
- createFilter={(value) => {
194
+ createFilter={(value: string) => {
193
195
  const parsed = parseInt(value);
194
196
  return !(parsed >= 1 && parsed <= 500);
195
197
  }}
@@ -206,15 +208,14 @@
206
208
 
207
209
  tableContext.paginationRepo?.setPageSize(newSize.value);
208
210
  }}
209
- virtual
210
211
  value={currentSize}
211
- options={pageSizes as SelectOption<number>[]}
212
+ options={pageSizes}
212
213
  labelProp="label"
213
214
  valueProp="value"
214
215
  valueAsObject
215
- onchange={(newSelection) => {
216
+ onchange={(newSelection: SelectOption<number> | null) => {
216
217
  if (newSelection?.value) {
217
- tableContext.paginationRepo?.setPageSize(newSelection?.value);
218
+ tableContext.paginationRepo?.setPageSize(newSelection.value);
218
219
  }
219
220
  }}
220
221
  />
@@ -287,7 +288,7 @@
287
288
  tableContext.paginationRepo?.nextPage();
288
289
  }}
289
290
  disabled={tableContext.showSelectedOnly ||
290
- tableContext.paginationRepo?.paginationState.pageIndex + 1 >= tableContext.lastPage}
291
+ tableContext.paginationRepo.paginationState.pageIndex + 1 >= tableContext.lastPage}
291
292
  iconRight={{
292
293
  name: 'right-close',
293
294
  size: Size.FillHeight
@@ -9,8 +9,10 @@
9
9
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
10
10
  import { ExpandedPanel } from '../Types/ExpandedPanel.js';
11
11
  import ColumnPanelModal from './ColumnPanelModal.svelte';
12
- import FilterPanelModal from './FilterPanelModal.svelte';
13
- import ToolboxPanelModal from './FilterPanelModal.svelte';
12
+ import {
13
+ default as FilterPanelModal,
14
+ default as ToolboxPanelModal
15
+ } from './FilterPanelModal.svelte';
14
16
 
15
17
  const tableContext = getContext<TableContext<T>>(TableContext.identifier);
16
18
 
@@ -88,12 +90,12 @@
88
90
  name: 'category'
89
91
  }}>My Tool Box</Button
90
92
  >
91
- {#if tableContext.dataRepo?.addEmptyRow}
93
+ {#if tableContext.dataRepo.addEmptyRow}
92
94
  <Button
93
95
  size={Size.Small}
94
96
  side={Side.Bottom}
95
97
  onclick={() => {
96
- tableContext.dataRepo?.addEmptyRow?.();
98
+ tableContext.dataRepo.addEmptyRow?.();
97
99
  }}
98
100
  variant={Variant.Toolbar}
99
101
  iconTop={{
@@ -109,7 +111,7 @@
109
111
  onclick={() => {
110
112
  tableContext.paginationRepo?.reload?.();
111
113
  }}
112
- toggled={tableContext.dataRepo?.isLoading}
114
+ toggled={tableContext.dataRepo.isLoading}
113
115
  size={Size.Small}
114
116
  disabled={!tableContext.allowQuickFiltering}
115
117
  variant={Variant.Toolbar}
@@ -11,8 +11,8 @@
11
11
  import { ToolbarPosition } from '../Types/Toolbar/ToolbarPosition.js';
12
12
  import ColumnPanel from './ColumnPanel.svelte';
13
13
  import FilterPanel from './FilterPanel.svelte';
14
- import ToolboxPanel from './ToolboxPanel.svelte';
15
14
  import SidePanel from './SidePanel.svelte';
15
+ import ToolboxPanel from './ToolboxPanel.svelte';
16
16
  const tableContext = getContext<TableContext<T>>(TableContext.identifier);
17
17
 
18
18
  const panels = {
@@ -124,7 +124,7 @@
124
124
  }}
125
125
  disabled={!tableContext.allowQuickFiltering}
126
126
  variant={Variant.Toolbar}
127
- toggled={tableContext.dataRepo?.isLoading}
127
+ toggled={tableContext.dataRepo.isLoading}
128
128
  iconTop={{
129
129
  // colour: Colour.$alt,
130
130
  name: 'refresh',
@@ -1,16 +1,11 @@
1
1
  <svelte:options runes />
2
2
 
3
- <script lang="ts" module>
4
- export interface ToolboxPanelModalProps {
5
- onclose?: () => void;
6
- }
7
- </script>
8
-
9
3
  <script lang="ts" generics="T extends object">
10
4
  import Checkbox from '../../Checkbox.svelte';
5
+ import DesktopModal from '../../DesktopModal.svelte';
11
6
  import { getContext } from 'svelte';
12
7
  import { TableContext } from '../Types/Context/TableContext.svelte.js';
13
- import DesktopModal from '../../DesktopModal.svelte';
8
+ import type { ToolboxPanelModalProps } from './ToolboxPanelModalProps.js';
14
9
 
15
10
  let { onclose }: ToolboxPanelModalProps = $props();
16
11
 
@@ -1,6 +1,4 @@
1
- export interface ToolboxPanelModalProps {
2
- onclose?: () => void;
3
- }
1
+ import type { ToolboxPanelModalProps } from './ToolboxPanelModalProps.js';
4
2
  declare function $$render<T extends object>(): {
5
3
  props: ToolboxPanelModalProps;
6
4
  exports: {};
@@ -0,0 +1,3 @@
1
+ export interface ToolboxPanelModalProps {
2
+ onclose?: () => void;
3
+ }
@@ -0,0 +1,5 @@
1
+ import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
2
+ export declare const numberDateFilterTypes: {
3
+ value: NumberDateFilterMode;
4
+ label: string;
5
+ }[];
@@ -0,0 +1,13 @@
1
+ import { NumberDateFilterMode } from '../Types/Filtering/NumberDateFilterMode.js';
2
+ export const numberDateFilterTypes = [
3
+ { value: NumberDateFilterMode.Equals, label: 'Equals' },
4
+ { value: NumberDateFilterMode.NotEquals, label: 'Does not equal' },
5
+ { value: NumberDateFilterMode.LessThan, label: 'Less Than' },
6
+ { value: NumberDateFilterMode.LessThanOrEqual, label: 'Less than or equal to' },
7
+ { value: NumberDateFilterMode.GreaterThan, label: 'Greater than' },
8
+ { value: NumberDateFilterMode.GreaterThanOrEqual, label: 'Greater than or equal to' },
9
+ { value: NumberDateFilterMode.Between, label: 'Between' },
10
+ { value: NumberDateFilterMode.In, label: 'In' },
11
+ { value: NumberDateFilterMode.NotIn, label: 'Not in' },
12
+ { value: NumberDateFilterMode.null, label: 'Is null' }
13
+ ];
@@ -0,0 +1,5 @@
1
+ import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
2
+ export declare const stringFilterTypes: {
3
+ value: StringFilterMode;
4
+ label: string;
5
+ }[];
@@ -0,0 +1,15 @@
1
+ import { StringFilterMode } from '../Types/Filtering/StringFilterMode.js';
2
+ export const stringFilterTypes = [
3
+ { value: StringFilterMode.Equals, label: 'Equals' },
4
+ { value: StringFilterMode.NotEquals, label: 'Does not equal' },
5
+ { value: StringFilterMode.Contains, label: 'Contains' },
6
+ { value: StringFilterMode.NotContains, label: 'Does not contain' },
7
+ { value: StringFilterMode.StartsWith, label: 'Starts With' },
8
+ { value: StringFilterMode.NotStartsWith, label: 'Does not start with' },
9
+ { value: StringFilterMode.EndsWith, label: 'Ends With' },
10
+ { value: StringFilterMode.NotEndsWith, label: 'Does not end with' },
11
+ { value: StringFilterMode.In, label: 'In' },
12
+ { value: StringFilterMode.NotIn, label: 'Not in' },
13
+ { value: StringFilterMode.Empty, label: 'Empty' },
14
+ { value: StringFilterMode.null, label: 'Is null' }
15
+ ];
@@ -20,7 +20,7 @@
20
20
 
21
21
  export interface NestedTableProps<T extends object> {
22
22
  tableName: string;
23
- data: T[];
23
+ data: Array<T>;
24
24
  columnDefWrapper: DefsWrapper<T>;
25
25
  options: Pick<TableInitOptions<T>, 'selectionExtractor'> & Partial<TableInitOptions<T>>;
26
26
  oncontextmenu?: (e: MouseEvent) => void;
@@ -49,13 +49,15 @@
49
49
  root?.closest('.flex_table')?.getBoundingClientRect().width
50
50
  );
51
51
 
52
- const dataRepo = $state(new LocalTableDataRepository(tableName, wrapper, getUserId));
52
+ // NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
53
+ const dataRepo = $state(new LocalTableDataRepository(tableName, wrapper, () => getUserId()));
53
54
 
55
+ // NOTE known limitation: These are passed as wrappers, and they should never require reassignment. They are deeply reactive
54
56
  const tableContext: TableContext<T> | undefined = $state(
55
57
  TableContext.init<T>(columnDefWrapper, tableName, dataRepo, {
56
58
  ...defaultOptions,
57
59
  ...options,
58
- getUserId
60
+ getUserId: () => getUserId()
59
61
  })
60
62
  );
61
63
  </script>
@@ -2,7 +2,7 @@ import type { DefsWrapper } from './Types/Columns/DefsWrapper.js';
2
2
  import type { TableInitOptions } from './Types/Context/TableInitOptions.js';
3
3
  export interface NestedTableProps<T extends object> {
4
4
  tableName: string;
5
- data: T[];
5
+ data: Array<T>;
6
6
  columnDefWrapper: DefsWrapper<T>;
7
7
  options: Pick<TableInitOptions<T>, 'selectionExtractor'> & Partial<TableInitOptions<T>>;
8
8
  oncontextmenu?: (e: MouseEvent) => void;
@@ -5,11 +5,13 @@
5
5
  ContextMenuContext,
6
6
  type IContextMenuOption
7
7
  } from '../../Contexts/ContextMenuContext.svelte.js';
8
- import { refWrapper } from '../../Helpers/Helpers.svelte.js';
8
+ import { devCatch, refWrapper } from '../../Helpers/Helpers.svelte.js';
9
+ import type { RefWrapper } from '../../Types/Internal/RefWrapper.js';
9
10
  import { getContext, onMount, setContext, tick, untrack } from 'svelte';
10
11
  import LoadingOverlay from '../LoadingOverlay.svelte';
12
+ import type { HeightData } from './Body/HeightData.js';
11
13
  import { shownPopup } from './Body/Rows/Columns/ActionsCell.svelte';
12
- import TableBody, { type HeightData } from './Body/TableBody.svelte';
14
+ import TableBody from './Body/TableBody.svelte';
13
15
  import TableHead from './Headers/TableHead.svelte';
14
16
  import TableFooter from './Misc/TableFooter.svelte';
15
17
  import TableHorizontalBar from './Misc/TableHorizontalBar.svelte';
@@ -27,7 +29,7 @@
27
29
  }
28
30
 
29
31
  export interface TableProps<T extends object> {
30
- tableContext: TableContext<T>;
32
+ readonly tableContext: TableContext<T>;
31
33
  nested?: boolean;
32
34
  }
33
35
 
@@ -39,6 +41,7 @@
39
41
  <script lang="ts" generics="T extends object">
40
42
  const { nested = false, tableContext }: TableProps<T> = $props();
41
43
 
44
+ // NOTE: known limitation. This is passed as a wrapper, and they should never require reassignment. It is deeply reactive
42
45
  setContext(TableContext.identifier, tableContext);
43
46
 
44
47
  // const tableContext = getContext<TableContext<T>>(TableContext.identifier);
@@ -53,18 +56,20 @@
53
56
  setContext(quickFilterContextIdentifier, openedQuickFilterSelect);
54
57
 
55
58
  $effect(() => {
56
- if (tableContext.focusStart && ref) {
57
- untrack(() => {
58
- const { row, column: index } = tableContext.focusStart!;
59
- let element = ref?.querySelector(
59
+ void tableContext.focusStart;
60
+ void ref;
61
+ untrack(() => {
62
+ if (tableContext.focusStart && ref) {
63
+ const { row, column: index } = tableContext.focusStart;
64
+ let element = ref.querySelector(
60
65
  `#${tableContext.tableName}-cell-${row}-${tableContext.columnDefs[index].id}`
61
66
  ) as HTMLElement | undefined;
62
67
 
63
68
  if (element?.tabIndex == -1) {
64
69
  const td = element;
65
- element = td.querySelector('button') as HTMLElement;
70
+ element = td.querySelector('button') as HTMLElement | undefined;
66
71
  if (!element) {
67
- element = td.querySelector('input') as HTMLElement;
72
+ element = td.querySelector('input') as HTMLElement | undefined;
68
73
  }
69
74
  }
70
75
 
@@ -74,8 +79,8 @@
74
79
  block: 'nearest',
75
80
  inline: 'nearest'
76
81
  });
77
- });
78
- }
82
+ }
83
+ });
79
84
  });
80
85
 
81
86
  $effect(() => {
@@ -95,7 +100,7 @@
95
100
 
96
101
  $effect(() => {
97
102
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
98
- tableContext.dataRepo?.data?.length;
103
+ tableContext.dataRepo.data.length;
99
104
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
100
105
  tableContext.selectedItems;
101
106
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
@@ -137,21 +142,30 @@
137
142
  }
138
143
  }
139
144
 
145
+ // this may not exist in http contexts
146
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
140
147
  if (tableContext.allowCopy && window.Clipboard) {
141
148
  e.preventDefault();
142
149
 
143
- const options: IContextMenuOption[] = [
144
- { callback: () => tableContext.copyDataToClipboard(), text: 'Copy Selection' }
150
+ const options: Array<IContextMenuOption> = [
151
+ {
152
+ callback: () => {
153
+ tableContext.copyDataToClipboard().catch(devCatch);
154
+ },
155
+ text: 'Copy Selection'
156
+ }
145
157
  ];
146
158
 
147
159
  if (tableContext.hasHighlightedItems) {
148
160
  options.push({
149
- callback: () => tableContext.copyHighlightedRowsToClipboard(),
161
+ callback: () => {
162
+ tableContext.copyHighlightedRowsToClipboard().catch(devCatch);
163
+ },
150
164
  text: 'Copy Highlighted Rows'
151
165
  });
152
166
  }
153
167
 
154
- _openContextMenu(e, options);
168
+ _openContextMenu(e, options).catch(devCatch);
155
169
  }
156
170
  }
157
171
 
@@ -163,7 +177,8 @@
163
177
  }
164
178
 
165
179
  if (target.closest('div.slot-wrapper') == null) {
166
- shownPopup.value = undefined;
180
+ // svelte type gen/eslint miscommunication
181
+ (shownPopup as RefWrapper<symbol | undefined>).value = undefined;
167
182
  }
168
183
  }
169
184
  }
@@ -192,8 +207,7 @@
192
207
  remPxRatio = parseFloat(getComputedStyle(document.documentElement).fontSize);
193
208
  });
194
209
 
195
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
196
- function addOverrideResizeHandler(e: MouseEvent) {
210
+ function addOverrideResizeHandler() {
197
211
  isResizing = true;
198
212
  window.addEventListener('mousemove', onResize);
199
213
  }
@@ -216,19 +230,21 @@
216
230
  const shouldUnfocusRemote = $derived(
217
231
  usesLoading &&
218
232
  tableContext.paginationRepo?.isLoading === false &&
219
- tableContext.paginationRepo!.paginationState?.pageIndex !==
233
+ tableContext.paginationRepo.paginationState.pageIndex !==
220
234
  tableContext.paginationRepo.previouslyViewedPage
221
235
  );
222
236
 
223
237
  const shouldUnfocusLocal = $derived(
224
- !usesLoading && tableContext.paginationRepo?.paginationState?.pageIndex
238
+ !usesLoading && tableContext.paginationRepo?.paginationState.pageIndex
225
239
  );
226
240
 
227
241
  $effect(() => {
228
242
  if ((shouldUnfocusRemote || shouldUnfocusLocal) && unfocusRef) {
229
- untrack(() => tableContext.unfocus());
243
+ untrack(() => {
244
+ tableContext.unfocus();
245
+ });
230
246
  unfocusRef.scrollTop = 0;
231
- } else if (usesLoading && tableContext.paginationRepo!.isLoading === false) {
247
+ } else if (usesLoading && tableContext.paginationRepo?.isLoading === false) {
232
248
  // refocus same element after a reload
233
249
  // this does not break mutifocus
234
250
  untrack(() => {
@@ -238,15 +254,27 @@
238
254
  }
239
255
  const idToFocusTo = `#${tableContext.tableName}-cell-${fs.row}-${fs.id}`;
240
256
 
241
- tick().then(() => {
242
- if (idToFocusTo) {
243
- (document.querySelector(idToFocusTo) as HTMLTableCellElement | undefined)?.focus();
244
- }
245
- });
257
+ tick()
258
+ .then(() => {
259
+ if (idToFocusTo) {
260
+ (document.querySelector(idToFocusTo) as HTMLTableCellElement | undefined)?.focus();
261
+ }
262
+ })
263
+ .catch(devCatch);
246
264
  });
247
265
  }
248
266
  });
249
267
 
268
+ $effect(() => {
269
+ void tableContext.dataRepo.data;
270
+ untrack(() => {
271
+ if (tableContext.paginationRepo?.paginationState.pageIndex != undefined) {
272
+ tableContext.updateSelectedItems().catch(devCatch);
273
+ tableContext.resetHighlightedRows();
274
+ }
275
+ });
276
+ });
277
+
250
278
  const leftTotalSize = $derived(tableContext.table.getLeftTotalSize());
251
279
  const centreTotalSize = $derived(tableContext.table.getCenterTotalSize());
252
280
  const rightTotalSize = $derived(tableContext.table.getRightTotalSize());
@@ -258,16 +286,20 @@
258
286
  const appropriateSide = $derived.by(() => {
259
287
  if (leftColumns.length > 0) {
260
288
  return 'left';
261
- } else if ((rightColumns.length ?? 0) != tableContext.columnDefs.length) {
289
+ } else if (rightColumns.length != tableContext.columnDefs.length) {
262
290
  return 'centre';
263
291
  } else {
264
292
  return 'right';
265
293
  }
266
294
  });
267
295
 
268
- let leftTable: TableBody<T> | undefined = $state();
269
- let centreTable: TableBody<T> | undefined = $state();
270
- let rightTable: TableBody<T> | undefined = $state();
296
+ type SvelteTableElement = {
297
+ rowHeights: RefWrapper<Array<number>>;
298
+ };
299
+
300
+ let leftTable: SvelteTableElement | undefined = $state();
301
+ let centreTable: SvelteTableElement | undefined = $state();
302
+ let rightTable: SvelteTableElement | undefined = $state();
271
303
 
272
304
  const totalRowSizes: Array<HeightData<T>> = $derived.by(() => {
273
305
  if (!leftTable || !centreTable || !rightTable) {
@@ -276,7 +308,7 @@
276
308
  const centre = centreTable.rowHeights.value;
277
309
  const right = rightTable.rowHeights.value;
278
310
 
279
- return leftTable?.rowHeights.value.map((_leftHeight, index) => {
311
+ return leftTable.rowHeights.value.map((_leftHeight, index) => {
280
312
  const leftHeight = _leftHeight || 0;
281
313
  const centreHeight = centre[index] || 0;
282
314
  const rightHeight = right[index] || 0;
@@ -304,13 +336,13 @@
304
336
  </script>
305
337
 
306
338
  <svelte:window
307
- onmouseup={(e) => {
339
+ onmouseup={(e: MouseEvent) => {
308
340
  if (
309
341
  // if it's not a click on an item in the context menu
310
- !(e.target as HTMLElement | undefined)?.classList?.contains('context-menu-item') &&
342
+ !(e.target as HTMLElement | undefined)?.classList.contains('context-menu-item') &&
311
343
  // if it's outside the table or inside the empty space of the table
312
344
  (e.target === unfocusRef ||
313
- ((e.target as HTMLElement | undefined)?.closest?.('.table-wrapper') == null &&
345
+ ((e.target as HTMLElement | undefined)?.closest('.table-wrapper') == null &&
314
346
  mousedDownEmptySpace))
315
347
  ) {
316
348
  tableContext.unfocus();
@@ -323,17 +355,17 @@
323
355
 
324
356
  removeOverrideResizeHandler();
325
357
  }}
326
- onclick={(e) => {
358
+ onclick={(e: MouseEvent) => {
327
359
  handleClickOutside(e);
328
360
  }}
329
- onmousedown={(e) => {
361
+ onmousedown={(e: MouseEvent) => {
330
362
  mousedDownEmptySpace =
331
363
  e.target === unfocusRef || (e.target as HTMLElement).closest('.table-wrapper') == null;
332
364
  }}
333
365
  />
334
366
 
335
367
  <div class="grid" class:nested>
336
- {#if tableContext.dataRepo?.isLoading}
368
+ {#if tableContext.dataRepo.isLoading}
337
369
  <LoadingOverlay absolute borderRadius="4px" />
338
370
  {/if}
339
371
 
@@ -434,7 +466,7 @@
434
466
  class="resizer"
435
467
  onmousedown={(e) => {
436
468
  e.preventDefault();
437
- addOverrideResizeHandler(e);
469
+ addOverrideResizeHandler();
438
470
  }}
439
471
  ></div>
440
472
  {/if}
@@ -7,7 +7,7 @@ declare global {
7
7
  }
8
8
  }
9
9
  export interface TableProps<T extends object> {
10
- tableContext: TableContext<T>;
10
+ readonly tableContext: TableContext<T>;
11
11
  nested?: boolean;
12
12
  }
13
13
  export declare const quickFilterContextIdentifier: symbol;
@@ -1,7 +1,7 @@
1
1
  import type { ColumnDef } from './Definitions/ColumnDef.svelte.js';
2
2
  export interface Column<T extends object> {
3
3
  id: string;
4
- columnDef: ColumnDef<T, any>;
4
+ columnDef: ColumnDef<T, never>;
5
5
  getCanSort: () => boolean;
6
6
  getToggleSortingHandler: () => ((e: MouseEvent) => void) | undefined;
7
7
  getIsSorted: () => 'asc' | 'desc' | 'none';
@@ -1,5 +1,5 @@
1
1
  import type { DateInputDef } from './Definitions/Accessors/DateInputDef.svelte.js';
2
- export interface DateColumn<T extends object & object> {
2
+ export interface DateColumn<T extends object> {
3
3
  id: string;
4
4
  columnDef: DateInputDef<T>;
5
5
  getCanSort: () => boolean;
@@ -1,8 +1,7 @@
1
1
  import type { CustomFilterFn } from '../../../Filtering/CustomFilterFn.js';
2
2
  import type { BoolFilterValueType, FilterFn } from '../../../Filtering/FilterFn.js';
3
3
  import { AccessorDef, type AccessorDefProps } from './AccessorDef.svelte.js';
4
- export interface CheckboxDefProps<T extends object> extends AccessorDefProps<T, BoolFilterValueType> {
5
- }
4
+ export type CheckboxDefProps<T extends object> = AccessorDefProps<T, BoolFilterValueType>;
6
5
  export declare class CheckboxDef<T extends object> extends AccessorDef<T, BoolFilterValueType> {
7
6
  readonly accessorType: "Checkbox";
8
7
  constructor(props: CheckboxDefProps<T>);
@@ -1,5 +1,7 @@
1
1
  import { AccessorDef } from './AccessorDef.svelte.js';
2
2
  import { AccessorType } from './AccessorType.js';
3
+ // export interface CheckboxDefProps<T extends object>
4
+ // extends AccessorDefProps<T, BoolFilterValueType> {}
3
5
  export class CheckboxDef extends AccessorDef {
4
6
  accessorType = AccessorType.Checkbox;
5
7
  constructor(props) {
@@ -2,14 +2,14 @@ import type { ColourSet } from '../../../../../../scss/colours.js';
2
2
  import type { TableActionButton } from '../../TableActionButton.js';
3
3
  import { ColumnDef } from '../ColumnDef.svelte.js';
4
4
  export interface ActionsDefProps<T extends object> {
5
- actions: TableActionButton<T>[];
5
+ actions: Array<TableActionButton<T>>;
6
6
  isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
7
7
  getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
8
8
  }
9
9
  export declare class ActionsDef<T extends object> extends ColumnDef<T> {
10
10
  constructor(props: ActionsDefProps<T>);
11
11
  readonly columnType: "Actions";
12
- readonly actions: TableActionButton<T>[];
12
+ readonly actions: Array<TableActionButton<T>>;
13
13
  readonly isEnabled?: (item: T, index: number, button: TableActionButton<T>) => boolean | Promise<boolean>;
14
14
  readonly getColourSet?: (item: T, index: number, button: TableActionButton<T>) => ColourSet;
15
15
  readonly filterFn: undefined;