@likable-hair/svelte 4.2.5 → 4.3.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 (117) hide show
  1. package/dist/components/composed/buttons/ActivableButton.svelte +25 -7
  2. package/dist/components/composed/common/HeadersDrawer.svelte +66 -28
  3. package/dist/components/composed/common/HeadersDrawer.svelte.d.ts +22 -12
  4. package/dist/components/composed/common/MenuOrDrawer.svelte +40 -12
  5. package/dist/components/composed/common/MenuOrDrawerOptions.svelte +51 -27
  6. package/dist/components/composed/common/MenuOrDrawerOptions.svelte.d.ts +15 -10
  7. package/dist/components/composed/common/QuickActions.svelte +59 -23
  8. package/dist/components/composed/common/ToolTip.svelte +51 -32
  9. package/dist/components/composed/dashboard/DashboardShaper.svelte +280 -147
  10. package/dist/components/composed/dashboard/DashboardShaper.svelte.d.ts +54 -45
  11. package/dist/components/composed/forms/AsyncAutocomplete.svelte +81 -30
  12. package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +12 -5
  13. package/dist/components/composed/forms/AvatarDropdown.svelte +146 -70
  14. package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +27 -22
  15. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +65 -19
  16. package/dist/components/composed/forms/CountriesAutocomplete.svelte +33 -4
  17. package/dist/components/composed/forms/DatePickerTextField.svelte +266 -161
  18. package/dist/components/composed/forms/Dropdown.svelte +88 -21
  19. package/dist/components/composed/forms/Dropdown.svelte.d.ts +18 -13
  20. package/dist/components/composed/forms/IconsDropdown.svelte +85 -40
  21. package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +15 -8
  22. package/dist/components/composed/forms/LabelAndSelect.svelte +46 -5
  23. package/dist/components/composed/forms/LabelAndTextField.svelte +56 -3
  24. package/dist/components/composed/forms/PeriodPicker.svelte +38 -18
  25. package/dist/components/composed/forms/PeriodPicker.svelte.d.ts +32 -7
  26. package/dist/components/composed/forms/PeriodSelector.svelte +427 -312
  27. package/dist/components/composed/forms/PeriodSelector.svelte.d.ts +20 -13
  28. package/dist/components/composed/forms/ToggleList.svelte +71 -37
  29. package/dist/components/composed/forms/ToggleList.svelte.d.ts +14 -7
  30. package/dist/components/composed/forms/YearPickerTextField.svelte +154 -82
  31. package/dist/components/composed/list/DynamicTable.svelte +1372 -809
  32. package/dist/components/composed/list/DynamicTable.svelte.d.ts +85 -70
  33. package/dist/components/composed/list/EnhancedPaginatedTable.svelte +75 -32
  34. package/dist/components/composed/list/EnhancedPaginatedTable.svelte.d.ts +16 -6
  35. package/dist/components/composed/list/PaginatedTable.svelte +324 -116
  36. package/dist/components/composed/list/PaginatedTable.svelte.d.ts +26 -22
  37. package/dist/components/composed/progress/HorizontalStackedProgress.svelte +67 -29
  38. package/dist/components/composed/search/DynamicFilters.svelte +126 -91
  39. package/dist/components/composed/search/FilterEditor.svelte +169 -109
  40. package/dist/components/composed/search/Filters.svelte +385 -275
  41. package/dist/components/composed/search/GlobalSearchTextField.svelte +102 -42
  42. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +23 -20
  43. package/dist/components/composed/search/MobileFilterEditor.svelte +174 -120
  44. package/dist/components/composed/search/QuickFilters.svelte +124 -75
  45. package/dist/components/composed/search/SearchBar.svelte +42 -3
  46. package/dist/components/composed/search/SearchResults.svelte +48 -5
  47. package/dist/components/composed/search/SearchResults.svelte.d.ts +17 -17
  48. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +100 -24
  49. package/dist/components/layouts/StableDividedSideBarLayout.svelte +74 -24
  50. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +140 -57
  51. package/dist/components/simple/buttons/Button.svelte +86 -36
  52. package/dist/components/simple/buttons/LinkButton.svelte +81 -25
  53. package/dist/components/simple/charts/BarChart.svelte +137 -105
  54. package/dist/components/simple/charts/LineChart.svelte +124 -92
  55. package/dist/components/simple/charts/PieChart.svelte +51 -23
  56. package/dist/components/simple/common/CollapsibleDivider.svelte +58 -26
  57. package/dist/components/simple/common/Divider.svelte +2 -1
  58. package/dist/components/simple/common/InfiniteScroll.svelte +60 -34
  59. package/dist/components/simple/common/MediaQuery.svelte +28 -3
  60. package/dist/components/simple/common/Menu.svelte +516 -371
  61. package/dist/components/simple/common/NoData.svelte +18 -4
  62. package/dist/components/simple/common/VerticalDraggableList.svelte +52 -26
  63. package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +20 -9
  64. package/dist/components/simple/dashboards/DashboardGridShaper.svelte +28 -22
  65. package/dist/components/simple/dates/Calendar.svelte +142 -72
  66. package/dist/components/simple/dates/DatePicker.svelte +138 -71
  67. package/dist/components/simple/dates/MonthSelector.svelte +49 -13
  68. package/dist/components/simple/dates/YearSelector.svelte +73 -30
  69. package/dist/components/simple/dialogs/Dialog.svelte +109 -59
  70. package/dist/components/simple/forms/Autocomplete.svelte +341 -164
  71. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +27 -20
  72. package/dist/components/simple/forms/Checkbox.svelte +57 -29
  73. package/dist/components/simple/forms/FileInput.svelte +103 -58
  74. package/dist/components/simple/forms/FileInputList.svelte +115 -51
  75. package/dist/components/simple/forms/RadioButton.svelte +36 -3
  76. package/dist/components/simple/forms/Select.svelte +30 -3
  77. package/dist/components/simple/forms/SimpleTextField.svelte +94 -4
  78. package/dist/components/simple/forms/Switch.svelte +33 -11
  79. package/dist/components/simple/forms/Textarea.svelte +22 -5
  80. package/dist/components/simple/forms/VerticalSwitch.svelte +19 -2
  81. package/dist/components/simple/forms/VerticalTextSwitch.svelte +35 -3
  82. package/dist/components/simple/lists/BoxList.svelte +42 -11
  83. package/dist/components/simple/lists/ColorInvertedSelector.svelte +83 -25
  84. package/dist/components/simple/lists/HierarchyMenu.svelte +55 -20
  85. package/dist/components/simple/lists/Paginator.svelte +53 -34
  86. package/dist/components/simple/lists/SelectableMenuList.svelte +52 -16
  87. package/dist/components/simple/lists/SelectableVerticalList.svelte +169 -85
  88. package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +21 -14
  89. package/dist/components/simple/lists/SidebarMenuList.svelte +127 -79
  90. package/dist/components/simple/lists/SimpleTable.svelte +442 -245
  91. package/dist/components/simple/lists/SimpleTable.svelte.d.ts +31 -22
  92. package/dist/components/simple/loaders/CircularLoader.css +1 -1
  93. package/dist/components/simple/loaders/CircularLoader.svelte +11 -3
  94. package/dist/components/simple/loaders/Skeleton.svelte +3 -2
  95. package/dist/components/simple/media/Avatar.svelte +35 -15
  96. package/dist/components/simple/media/DescriptiveAvatar.svelte +30 -4
  97. package/dist/components/simple/media/FlagIcon.svelte +13 -3
  98. package/dist/components/simple/media/Icon.svelte +21 -6
  99. package/dist/components/simple/navigation/Breadcrumb.svelte +41 -9
  100. package/dist/components/simple/navigation/Chip.svelte +65 -29
  101. package/dist/components/simple/navigation/Drawer.svelte +132 -71
  102. package/dist/components/simple/navigation/HeaderMenu.svelte +69 -25
  103. package/dist/components/simple/navigation/Navigator.svelte +45 -11
  104. package/dist/components/simple/navigation/TabSwitcher.svelte +60 -19
  105. package/dist/components/simple/notifiers/AlertBanner.svelte +59 -11
  106. package/dist/components/simple/progress/ProgressBar.svelte +26 -10
  107. package/dist/components/simple/timeline/SimpleTimeLine.svelte +52 -5
  108. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +16 -9
  109. package/dist/components/simple/typography/Code.svelte +41 -12
  110. package/dist/stores/layouts/unstableSidebarOpened.d.ts +1 -1
  111. package/dist/stores/layouts/unstableSidebarOpened.js +1 -1
  112. package/dist/stores/theme.js +2 -2
  113. package/dist/utils/filters/builder.d.ts +2 -2
  114. package/dist/utils/filters/builder.js +7 -7
  115. package/dist/utils/filters/modifiers/where.d.ts +1 -1
  116. package/dist/utils/teleporter.js +4 -4
  117. package/package.json +39 -33
@@ -1,156 +1,364 @@
1
- <script lang="ts" generics="Item extends {[key: string]: any}, Data">import SimpleTable, {} from "../../simple/lists/SimpleTable.svelte";
2
- import Paginator from "../../simple/lists/Paginator.svelte";
3
- import Dropdown from "../forms/Dropdown.svelte";
4
- import {} from "svelte";
5
- import Filters from "../search/Filters.svelte";
6
- import SearchBar from "../search/SearchBar.svelte";
7
- import Converter from "../../../utils/filters/filters";
8
- import MediaQuery from "../../simple/common/MediaQuery.svelte";
9
- import QuickFilters from "../search/QuickFilters.svelte";
10
- import Checkbox from "../../simple/forms/Checkbox.svelte";
11
- import { QuickActions } from "../../..";
12
- let { headers = [], items = [], sortedBy = $bindable(undefined), sortDirection = $bindable("asc"), page = $bindable(1), maxPage = undefined, rowsPerPageOptions = [
13
- { label: "20", value: 20 },
14
- { label: "50", value: 50 },
15
- { label: "100", value: 100 },
16
- ], hideRowsPerPage = false, totalElements = undefined, rowsPerPage = $bindable(20), filters = $bindable(), quickFilters = $bindable(), searchBarColumns = undefined, searchBarVisible = true, quickFiltersVisible = false, lang = "en", dateLocale, multiEditTabs, searchBarPlaceholder = lang == 'en' ? "Type to search..." : "Scrivi per cercare...", editFilterMode = "one-edit", showActiveFilters = true, resizableColumns = false, resizedColumnSizeWithPadding = $bindable({}), pointerOnRowHover = undefined, doubleClickActive = false, doubleClickDelay = 250, searchTimeoutDelay = 300, hideSelectAll, showSelection, selectedItems = $bindable([]), selectionMode = 'multiple', selectedAll = $bindable(), uniqueKey = 'id', hideActions, actionsForSelectedItems = [], filterLabels, calculateRowStyles = undefined, calculateRowClasses = undefined, class: clazz = {}, onfiltersChange, onpaginationChange, onremoveFilter, onremoveAllFilters, customFilterChipSnippet, customFilterSnippet, filterAppendSnippet, onrowClick, onrowDoubleClick, appendSnippet, customSnippet, headerLabelSnippet, headerSnippet, onsort, footerSnippet, rangeDescriptorSnippet, searchBarSnippet, noDataSnippet, totalsSnippet, oncolumnResize, prependSnippet: prependSnippetInternal, ...rest } = $props();
17
- let searchBarInput = $state(), searchText = $state(), sortModify, searchTimeout, selectedIndexes = [];
18
- let rowsPerPageSelection = $state([]);
19
- $effect(() => {
1
+ <script lang="ts" generics="Item extends {[key: string]: any}, Data">
2
+ import SimpleTable, {
3
+ type Header,
4
+ } from "../../simple/lists/SimpleTable.svelte";
5
+ import Paginator from "../../simple/lists/Paginator.svelte";
6
+ import Dropdown from "../forms/Dropdown.svelte";
7
+ import { type ComponentProps, type Snippet } from "svelte";
8
+ import Filters from "../search/Filters.svelte";
9
+ import SearchBar from "../search/SearchBar.svelte";
10
+ import type Builder from "../../../utils/filters/builder";
11
+ import Converter from "../../../utils/filters/filters";
12
+ import MediaQuery from "../../simple/common/MediaQuery.svelte";
13
+ import QuickFilters from "../search/QuickFilters.svelte";
14
+ import Checkbox from "../../simple/forms/Checkbox.svelte";
15
+ import { QuickActions } from "../../..";
16
+ import type { Action } from "../common/QuickActions.svelte";
17
+
18
+ interface Props extends Omit<ComponentProps<typeof SimpleTable<Item, Data>>, "class"> {
19
+ page?: NonNullable<ComponentProps<typeof Paginator>["page"]>;
20
+ maxPage?: ComponentProps<typeof Paginator>["maxPage"];
21
+ rowsPerPageOptions?: ComponentProps<typeof Dropdown>["items"];
22
+ hideRowsPerPage?: boolean;
23
+ totalElements?: number;
24
+ rowsPerPage?: number;
25
+ filters?: ComponentProps<typeof Filters>["filters"];
26
+ searchBarColumns?: string[];
27
+ searchBarVisible?: boolean;
28
+ searchBarPlaceholder?: string;
29
+ quickFiltersVisible?: boolean;
30
+ quickFilters?: ComponentProps<typeof QuickFilters>["filters"];
31
+ editFilterMode?: "one-edit" | "multi-edit";
32
+ showActiveFilters?: boolean;
33
+ dateLocale?: 'it' | 'en'
34
+ multiEditTabs?: ComponentProps<typeof Filters>['multiEditTabs']
35
+ searchTimeoutDelay?: number
36
+ showSelection?: boolean
37
+ selectionMode?: 'single' | 'multiple'
38
+ hideSelectAll?: boolean
39
+ selectedAll?: boolean
40
+ selectedItems?: ComponentProps<typeof SimpleTable<Item, Data>>['items']
41
+ uniqueKey?: keyof ComponentProps<typeof SimpleTable<Item, Data>>['items'][number]
42
+ hideActions?: boolean
43
+ actionsForSelectedItems?: Action[];
44
+ filterLabels?: Pick<ComponentProps<typeof Filters>,
45
+ 'addFilterLabel' |
46
+ 'applyFilterLabel' |
47
+ 'filterTitleLabel' |
48
+ 'cancelFilterLabel' |
49
+ 'labelsMapper' |
50
+ 'trueString' |
51
+ 'falseString' |
52
+ 'betweenSeparator'
53
+ >
54
+ class?: {
55
+ simpleTable?: ComponentProps<typeof SimpleTable<Item, Data>>["class"];
56
+ };
57
+ onpaginationChange?: (event: {
58
+ detail: {
59
+ rowsPerPage: number;
60
+ page: number;
61
+ builder: Builder;
62
+ };
63
+ }) => void;
64
+ onfiltersChange?: (event: {
65
+ detail: {
66
+ builder: Builder;
67
+ };
68
+ }) => void;
69
+ onremoveFilter?: ComponentProps<typeof Filters>["onremoveFilter"];
70
+ onremoveAllFilters?: ComponentProps<typeof Filters>["onremoveAllFilters"];
71
+ filterAppendSnippet?: ComponentProps<typeof Filters>["appendSnippet"];
72
+ customFilterChipSnippet?: ComponentProps<
73
+ typeof Filters
74
+ >["customChipSnippet"];
75
+ customFilterSnippet?: ComponentProps<typeof Filters>["customSnippet"];
76
+ searchBarSnippet?: Snippet<
77
+ [
78
+ {
79
+ handleSearchChange: typeof handleSearchChange;
80
+ },
81
+ ]
82
+ >;
83
+ footerSnippet?: Snippet<
84
+ [
85
+ {
86
+ hideRowsPerPage: typeof hideRowsPerPage;
87
+ rowsPerPageOptions: typeof rowsPerPageOptions;
88
+ rowsPerPageSelection: typeof rowsPerPageSelection;
89
+ totalElements: typeof totalElements;
90
+ page: typeof page;
91
+ maxPage: typeof maxPage;
92
+ rowsPerPage: typeof rowsPerPage;
93
+ handlePaginationChange: typeof handlePaginationChange;
94
+ },
95
+ ]
96
+ >;
97
+ rangeDescriptorSnippet?: Snippet<
98
+ [
99
+ {
100
+ totalElements: typeof totalElements;
101
+ page: typeof page;
102
+ maxPage: typeof maxPage;
103
+ rowsPerPage: typeof rowsPerPage;
104
+ },
105
+ ]
106
+ >;
107
+ totalsSnippet?: Snippet<[]>
108
+ }
109
+
110
+ let {
111
+ headers = [],
112
+ items = [],
113
+ sortedBy = $bindable(undefined),
114
+ sortDirection = $bindable("asc"),
115
+ page = $bindable(1),
116
+ maxPage = undefined,
117
+ rowsPerPageOptions = [
118
+ { label: "20", value: 20 },
119
+ { label: "50", value: 50 },
120
+ { label: "100", value: 100 },
121
+ ],
122
+ hideRowsPerPage = false,
123
+ totalElements = undefined,
124
+ rowsPerPage = $bindable(20),
125
+ filters = $bindable(),
126
+ quickFilters = $bindable(),
127
+ searchBarColumns = undefined,
128
+ searchBarVisible = true,
129
+ quickFiltersVisible = false,
130
+ lang = "en",
131
+ dateLocale,
132
+ multiEditTabs,
133
+ searchBarPlaceholder = lang == 'en' ? "Type to search..." : "Scrivi per cercare...",
134
+ editFilterMode = "one-edit",
135
+ showActiveFilters = true,
136
+ resizableColumns = false,
137
+ resizedColumnSizeWithPadding = $bindable({}),
138
+ pointerOnRowHover = undefined,
139
+ doubleClickActive = false,
140
+ doubleClickDelay = 250,
141
+ searchTimeoutDelay = 300,
142
+ hideSelectAll,
143
+ showSelection,
144
+ selectedItems = $bindable([]),
145
+ selectionMode = 'multiple',
146
+ selectedAll = $bindable(),
147
+ uniqueKey = 'id',
148
+ hideActions,
149
+ actionsForSelectedItems = [],
150
+ filterLabels,
151
+ calculateRowStyles = undefined,
152
+ calculateRowClasses = undefined,
153
+ class: clazz = {},
154
+ onfiltersChange,
155
+ onpaginationChange,
156
+ onremoveFilter,
157
+ onremoveAllFilters,
158
+ customFilterChipSnippet,
159
+ customFilterSnippet,
160
+ filterAppendSnippet,
161
+ onrowClick,
162
+ onrowDoubleClick,
163
+ appendSnippet,
164
+ customSnippet,
165
+ headerLabelSnippet,
166
+ headerSnippet,
167
+ onsort,
168
+ footerSnippet,
169
+ rangeDescriptorSnippet,
170
+ searchBarSnippet,
171
+ noDataSnippet,
172
+ totalsSnippet,
173
+ oncolumnResize,
174
+ prependSnippet: prependSnippetInternal,
175
+ ...rest
176
+ }: Props = $props();
177
+
178
+ let searchBarInput: HTMLElement | undefined = $state(),
179
+ searchText: string | undefined = $state(),
180
+ sortModify: Header<Data>["sortModify"],
181
+ searchTimeout: NodeJS.Timeout,
182
+ selectedIndexes: number[] = []
183
+
184
+ let rowsPerPageSelection: ComponentProps<typeof Dropdown>["values"] = $state(
185
+ [],
186
+ );
187
+
188
+ $effect(() => {
20
189
  rowsPerPageSelection = [
21
- { label: rowsPerPage.toString(), value: rowsPerPage },
190
+ { label: rowsPerPage.toString(), value: rowsPerPage },
22
191
  ];
23
- });
24
- $effect(() => {
192
+ });
193
+
194
+ $effect(() => {
25
195
  if (totalElements !== undefined)
26
- maxPage = Math.max(Math.ceil(totalElements / rowsPerPage), 1);
27
- });
28
- function handleRowsPerPageChange(event) {
196
+ maxPage = Math.max(Math.ceil(totalElements / rowsPerPage), 1);
197
+ });
198
+
199
+ function handleRowsPerPageChange(
200
+ event: Parameters<
201
+ NonNullable<ComponentProps<typeof Dropdown>["onchange"]>
202
+ >[0],
203
+ ) {
29
204
  rowsPerPage = Number(event.detail.selection?.[0].value);
30
205
  handlePaginationChange();
31
- }
32
- function handlePaginationChange() {
206
+ }
207
+
208
+ function handlePaginationChange() {
33
209
  let builder = buildFilters();
210
+
34
211
  if (onpaginationChange) {
35
- onpaginationChange({
36
- detail: {
37
- rowsPerPage,
38
- page,
39
- builder,
40
- },
41
- });
212
+ onpaginationChange({
213
+ detail: {
214
+ rowsPerPage,
215
+ page,
216
+ builder,
217
+ },
218
+ });
42
219
  }
43
- }
44
- function handleSearchChange(searchText) {
45
- clearTimeout(searchTimeout);
220
+ }
221
+
222
+ function handleSearchChange(searchText: string | undefined) {
223
+ clearTimeout(searchTimeout)
224
+
46
225
  searchTimeout = setTimeout(() => {
47
- let builder = buildFilters({ searchText });
48
- onfiltersChange?.({
49
- detail: { builder },
50
- });
226
+ let builder = buildFilters({ searchText })
227
+
228
+ onfiltersChange?.({
229
+ detail: { builder },
230
+ });
51
231
  }, searchTimeoutDelay);
52
- }
53
- function handleFiltersChange() {
232
+ }
233
+
234
+ function handleFiltersChange() {
54
235
  let builder = buildFilters({ searchText });
236
+
55
237
  onfiltersChange?.({
56
- detail: {
57
- builder,
58
- },
238
+ detail: {
239
+ builder,
240
+ },
59
241
  });
60
- }
61
- function handleRemoveFilter(event) {
242
+ }
243
+
244
+ function handleRemoveFilter(
245
+ event: Parameters<
246
+ NonNullable<ComponentProps<typeof Filters>["onremoveFilter"]>
247
+ >[0],
248
+ ) {
62
249
  handleFiltersChange();
250
+
63
251
  if (onremoveFilter) {
64
- onremoveFilter(event);
252
+ onremoveFilter(event);
65
253
  }
66
- }
67
- function handleRemoveAllFilters() {
254
+ }
255
+
256
+ function handleRemoveAllFilters() {
68
257
  handleFiltersChange();
258
+
69
259
  if (onremoveAllFilters) {
70
- onremoveAllFilters();
260
+ onremoveAllFilters();
71
261
  }
72
- }
73
- function handleOnSort(event) {
262
+ }
263
+
264
+ function handleOnSort(
265
+ event: Parameters<
266
+ NonNullable<ComponentProps<typeof SimpleTable<Item, Data>>["onsort"]>
267
+ >[0],
268
+ ) {
74
269
  sortModify = event.detail.sortModify;
75
270
  handleFiltersChange();
271
+
76
272
  if (onsort) {
77
- onsort(event);
273
+ onsort(event);
78
274
  }
79
- }
80
- function buildFilters(params) {
275
+ }
276
+
277
+ function buildFilters(params?: { searchText?: string | undefined }) {
81
278
  let converter = new Converter();
82
- let builder;
279
+ let builder: Builder;
280
+
83
281
  builder = converter.createBuilder({
84
- filters: [
85
- ...(filters || []),
86
- ...(quickFilters || [])
87
- ],
282
+ filters: [
283
+ ...(filters || []),
284
+ ...(quickFilters || [])
285
+ ],
88
286
  });
89
- if (!!params?.searchText &&
90
- !!searchBarColumns &&
91
- searchBarColumns.length > 0) {
92
- builder.where((b) => {
93
- b.where(searchBarColumns[0], "ilike", "%" + params?.searchText + "%");
94
- for (let i = 1; i < searchBarColumns.length; i += 1) {
95
- b.orWhere(searchBarColumns[i], "ilike", "%" + params?.searchText + "%");
96
- }
97
- });
287
+
288
+ if (
289
+ !!params?.searchText &&
290
+ !!searchBarColumns &&
291
+ searchBarColumns.length > 0
292
+ ) {
293
+ builder.where((b) => {
294
+ b.where(searchBarColumns![0], "ilike", "%" + params?.searchText + "%");
295
+ for (let i = 1; i < searchBarColumns!.length; i += 1) {
296
+ b.orWhere(
297
+ searchBarColumns![i],
298
+ "ilike",
299
+ "%" + params?.searchText + "%",
300
+ );
301
+ }
302
+ });
98
303
  }
304
+
99
305
  if (!!sortedBy) {
100
- if (sortModify) {
101
- builder = sortModify({
102
- builder,
103
- sortDirection: sortDirection || "asc",
104
- });
105
- }
106
- else {
107
- builder.orderBy(sortedBy, sortDirection || "asc");
108
- }
306
+ if (sortModify) {
307
+ builder = sortModify({
308
+ builder,
309
+ sortDirection: sortDirection || "asc",
310
+ });
311
+ } else {
312
+ builder.orderBy(sortedBy, sortDirection || "asc");
313
+ }
109
314
  }
110
- selectedItems = [];
111
- selectedIndexes = [];
315
+
316
+ selectedItems = []
317
+ selectedIndexes = []
318
+
112
319
  return builder;
113
- }
114
- function handleSelectAll() {
115
- selectedAll = !selectedAll;
116
- selectedItems = [];
117
- selectedIndexes = [];
118
- }
119
- function handleSelect(item, shiftKeyPressed) {
320
+ }
321
+
322
+ function handleSelectAll() {
323
+ selectedAll = !selectedAll
324
+ selectedItems = []
325
+ selectedIndexes = []
326
+ }
327
+
328
+ function handleSelect(item: Item, shiftKeyPressed: boolean) {
120
329
  let index = selectedItems.findIndex((i) => i[uniqueKey] == item[uniqueKey]);
121
330
  // if item is not in the selectedItems array, add it
122
331
  if (index == -1) {
123
- if (selectionMode == "single") {
124
- selectedItems = [item];
125
- selectedIndexes = [items.findIndex(r => r[uniqueKey] == item[uniqueKey])];
126
- }
127
- else if (selectionMode == "multiple") {
128
- if (shiftKeyPressed && selectedIndexes.length > 0) {
129
- let lastSelectedIndex = selectedIndexes[selectedIndexes.length - 1], selectedIndex = items.findIndex(r => r[uniqueKey] == item[uniqueKey]);
130
- if (selectedIndex != -1) {
131
- if (selectedIndex < lastSelectedIndex) {
132
- let x = lastSelectedIndex;
133
- lastSelectedIndex = selectedIndex - 1;
134
- selectedIndex = x;
135
- }
136
- for (let i = lastSelectedIndex + 1; i <= selectedIndex; i++) {
137
- if (!selectedItems.find((selectedItem) => selectedItem[uniqueKey] == items[i][uniqueKey])) {
138
- selectedItems = [...selectedItems, items[i]];
139
- }
140
- }
141
- }
332
+ if (selectionMode == "single") {
333
+ selectedItems = [item];
334
+ selectedIndexes = [items.findIndex(r => r[uniqueKey] == item[uniqueKey])]
335
+ } else if (selectionMode == "multiple") {
336
+ if(shiftKeyPressed && selectedIndexes.length > 0) {
337
+ let lastSelectedIndex = selectedIndexes[selectedIndexes.length - 1],
338
+ selectedIndex = items.findIndex(r => r[uniqueKey] == item[uniqueKey])
339
+ if(selectedIndex != -1) {
340
+ if(selectedIndex < lastSelectedIndex) {
341
+ let x = lastSelectedIndex
342
+ lastSelectedIndex = selectedIndex - 1
343
+ selectedIndex = x
142
344
  }
143
- else {
144
- selectedItems = [...selectedItems, item];
145
- selectedIndexes.push(items.findIndex(r => r[uniqueKey] == item[uniqueKey]));
345
+ for (let i = lastSelectedIndex + 1; i <= selectedIndex; i++) {
346
+ if(!selectedItems.find((selectedItem) => selectedItem[uniqueKey] == items[i][uniqueKey])) {
347
+ selectedItems = [...selectedItems, items[i]]
348
+ }
146
349
  }
350
+ }
147
351
  }
352
+ else {
353
+ selectedItems = [...selectedItems, item];
354
+ selectedIndexes.push(items.findIndex(r => r[uniqueKey] == item[uniqueKey]))
355
+ }
356
+ }
357
+ } else {
358
+ selectedItems = selectedItems.filter((i) => i[uniqueKey] != item[uniqueKey]);
359
+ selectedIndexes = selectedIndexes.filter(r => r != items.findIndex(r => r[uniqueKey] == item[uniqueKey]))
148
360
  }
149
- else {
150
- selectedItems = selectedItems.filter((i) => i[uniqueKey] != item[uniqueKey]);
151
- selectedIndexes = selectedIndexes.filter(r => r != items.findIndex(r => r[uniqueKey] == item[uniqueKey]));
152
- }
153
- }
361
+ }
154
362
  </script>
155
363
 
156
364
  <div class="paginated-table">
@@ -1,4 +1,4 @@
1
- import { type Header } from "../../simple/lists/SimpleTable.svelte";
1
+ import SimpleTable, { type Header } from "../../simple/lists/SimpleTable.svelte";
2
2
  import Paginator from "../../simple/lists/Paginator.svelte";
3
3
  import Dropdown from "../forms/Dropdown.svelte";
4
4
  import { type ComponentProps, type Snippet } from "svelte";
@@ -6,10 +6,10 @@ import Filters from "../search/Filters.svelte";
6
6
  import type Builder from "../../../utils/filters/builder";
7
7
  import QuickFilters from "../search/QuickFilters.svelte";
8
8
  import type { Action } from "../common/QuickActions.svelte";
9
- declare class __sveltets_Render<Item extends {
9
+ declare function $$render<Item extends {
10
10
  [key: string]: any;
11
- }, Data> {
12
- props(): Omit<{
11
+ }, Data>(): {
12
+ props: Omit<{
13
13
  headers: Header<Data>[];
14
14
  items: Item[];
15
15
  sortedBy?: string;
@@ -100,31 +100,26 @@ declare class __sveltets_Render<Item extends {
100
100
  selectionMode?: "single" | "multiple";
101
101
  hideSelectAll?: boolean;
102
102
  selectedAll?: boolean;
103
- selectedItems?: Item[] | undefined;
104
- uniqueKey?: keyof Item | undefined;
103
+ selectedItems?: ComponentProps<typeof SimpleTable<Item, Data>>["items"];
104
+ uniqueKey?: keyof ComponentProps<typeof SimpleTable<Item, Data>>["items"][number];
105
105
  hideActions?: boolean;
106
106
  actionsForSelectedItems?: Action[];
107
107
  filterLabels?: Pick<ComponentProps<typeof Filters>, "addFilterLabel" | "applyFilterLabel" | "filterTitleLabel" | "cancelFilterLabel" | "labelsMapper" | "trueString" | "falseString" | "betweenSeparator">;
108
108
  class?: {
109
- simpleTable?: {
110
- container?: string;
111
- header?: string;
112
- row?: string;
113
- cell?: string;
114
- } | undefined;
115
- } | undefined;
116
- onpaginationChange?: ((event: {
109
+ simpleTable?: ComponentProps<typeof SimpleTable<Item, Data>>["class"];
110
+ };
111
+ onpaginationChange?: (event: {
117
112
  detail: {
118
113
  rowsPerPage: number;
119
114
  page: number;
120
115
  builder: Builder;
121
116
  };
122
- }) => void) | undefined;
123
- onfiltersChange?: ((event: {
117
+ }) => void;
118
+ onfiltersChange?: (event: {
124
119
  detail: {
125
120
  builder: Builder;
126
121
  };
127
- }) => void) | undefined;
122
+ }) => void;
128
123
  onremoveFilter?: ComponentProps<typeof Filters>["onremoveFilter"];
129
124
  onremoveAllFilters?: ComponentProps<typeof Filters>["onremoveAllFilters"];
130
125
  filterAppendSnippet?: ComponentProps<typeof Filters>["appendSnippet"];
@@ -132,7 +127,7 @@ declare class __sveltets_Render<Item extends {
132
127
  customFilterSnippet?: ComponentProps<typeof Filters>["customSnippet"];
133
128
  searchBarSnippet?: Snippet<[{
134
129
  handleSearchChange: (searchText: string | undefined) => void;
135
- }]> | undefined;
130
+ }]>;
136
131
  footerSnippet?: Snippet<[{
137
132
  hideRowsPerPage: boolean;
138
133
  rowsPerPageOptions: import("../forms/AsyncAutocomplete.svelte").Item<unknown>[];
@@ -142,17 +137,26 @@ declare class __sveltets_Render<Item extends {
142
137
  maxPage: number | undefined;
143
138
  rowsPerPage: number;
144
139
  handlePaginationChange: () => void;
145
- }]> | undefined;
140
+ }]>;
146
141
  rangeDescriptorSnippet?: Snippet<[{
147
142
  totalElements: number | undefined;
148
143
  page: number;
149
144
  maxPage: number | undefined;
150
145
  rowsPerPage: number;
151
- }]> | undefined;
146
+ }]>;
152
147
  totalsSnippet?: Snippet<[]>;
153
148
  };
154
- events(): {};
155
- slots(): {};
149
+ exports: {};
150
+ bindings: "page" | "sortedBy" | "sortDirection" | "resizedColumnSizeWithPadding" | "filters" | "selectedItems" | "rowsPerPage" | "quickFilters" | "selectedAll";
151
+ slots: {};
152
+ events: {};
153
+ };
154
+ declare class __sveltets_Render<Item extends {
155
+ [key: string]: any;
156
+ }, Data> {
157
+ props(): ReturnType<typeof $$render<Item, Data>>['props'];
158
+ events(): ReturnType<typeof $$render<Item, Data>>['events'];
159
+ slots(): ReturnType<typeof $$render<Item, Data>>['slots'];
156
160
  bindings(): "page" | "sortedBy" | "sortDirection" | "resizedColumnSizeWithPadding" | "filters" | "selectedItems" | "rowsPerPage" | "quickFilters" | "selectedAll";
157
161
  exports(): {};
158
162
  }