@likable-hair/svelte 4.2.4 → 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 (120) 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.css +5 -5
  8. package/dist/components/composed/common/QuickActions.svelte +76 -33
  9. package/dist/components/composed/common/ToolTip.svelte +51 -32
  10. package/dist/components/composed/dashboard/DashboardShaper.svelte +280 -147
  11. package/dist/components/composed/dashboard/DashboardShaper.svelte.d.ts +54 -45
  12. package/dist/components/composed/forms/AsyncAutocomplete.svelte +81 -30
  13. package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +17 -5
  14. package/dist/components/composed/forms/AvatarDropdown.svelte +146 -70
  15. package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +27 -22
  16. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +65 -19
  17. package/dist/components/composed/forms/CountriesAutocomplete.svelte +33 -4
  18. package/dist/components/composed/forms/DatePickerTextField.svelte +266 -161
  19. package/dist/components/composed/forms/Dropdown.svelte +89 -22
  20. package/dist/components/composed/forms/Dropdown.svelte.d.ts +18 -13
  21. package/dist/components/composed/forms/IconsDropdown.svelte +85 -40
  22. package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +15 -8
  23. package/dist/components/composed/forms/LabelAndSelect.svelte +46 -5
  24. package/dist/components/composed/forms/LabelAndTextField.svelte +56 -3
  25. package/dist/components/composed/forms/PeriodPicker.svelte +38 -18
  26. package/dist/components/composed/forms/PeriodPicker.svelte.d.ts +32 -7
  27. package/dist/components/composed/forms/PeriodSelector.svelte +427 -312
  28. package/dist/components/composed/forms/PeriodSelector.svelte.d.ts +20 -13
  29. package/dist/components/composed/forms/ToggleList.svelte +71 -37
  30. package/dist/components/composed/forms/ToggleList.svelte.d.ts +14 -7
  31. package/dist/components/composed/forms/YearPickerTextField.svelte +154 -82
  32. package/dist/components/composed/list/DynamicTable.svelte +1377 -808
  33. package/dist/components/composed/list/DynamicTable.svelte.d.ts +85 -70
  34. package/dist/components/composed/list/EnhancedPaginatedTable.svelte +75 -32
  35. package/dist/components/composed/list/EnhancedPaginatedTable.svelte.d.ts +16 -6
  36. package/dist/components/composed/list/PaginatedTable.svelte +325 -120
  37. package/dist/components/composed/list/PaginatedTable.svelte.d.ts +26 -22
  38. package/dist/components/composed/progress/HorizontalStackedProgress.svelte +67 -29
  39. package/dist/components/composed/search/DynamicFilters.svelte +126 -91
  40. package/dist/components/composed/search/FilterEditor.svelte +178 -115
  41. package/dist/components/composed/search/Filters.svelte +441 -301
  42. package/dist/components/composed/search/GlobalSearchTextField.svelte +102 -42
  43. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +23 -20
  44. package/dist/components/composed/search/MobileFilterEditor.svelte +174 -120
  45. package/dist/components/composed/search/QuickFilters.svelte +133 -23
  46. package/dist/components/composed/search/SearchBar.svelte +42 -3
  47. package/dist/components/composed/search/SearchResults.svelte +48 -5
  48. package/dist/components/composed/search/SearchResults.svelte.d.ts +17 -17
  49. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +100 -24
  50. package/dist/components/layouts/StableDividedSideBarLayout.svelte +74 -24
  51. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +140 -57
  52. package/dist/components/simple/buttons/Button.svelte +86 -36
  53. package/dist/components/simple/buttons/LinkButton.svelte +81 -25
  54. package/dist/components/simple/charts/BarChart.svelte +137 -105
  55. package/dist/components/simple/charts/LineChart.svelte +124 -92
  56. package/dist/components/simple/charts/PieChart.svelte +51 -23
  57. package/dist/components/simple/common/CollapsibleDivider.svelte +58 -26
  58. package/dist/components/simple/common/Divider.svelte +2 -1
  59. package/dist/components/simple/common/InfiniteScroll.svelte +60 -34
  60. package/dist/components/simple/common/MediaQuery.svelte +28 -3
  61. package/dist/components/simple/common/Menu.svelte +516 -390
  62. package/dist/components/simple/common/NoData.svelte +18 -4
  63. package/dist/components/simple/common/VerticalDraggableList.svelte +52 -26
  64. package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +20 -9
  65. package/dist/components/simple/dashboards/DashboardGridShaper.svelte +28 -22
  66. package/dist/components/simple/dates/Calendar.svelte +142 -72
  67. package/dist/components/simple/dates/DatePicker.svelte +138 -71
  68. package/dist/components/simple/dates/MonthSelector.svelte +49 -13
  69. package/dist/components/simple/dates/YearSelector.svelte +73 -30
  70. package/dist/components/simple/dialogs/Dialog.svelte +109 -59
  71. package/dist/components/simple/forms/Autocomplete.css +3 -0
  72. package/dist/components/simple/forms/Autocomplete.svelte +366 -164
  73. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +31 -19
  74. package/dist/components/simple/forms/Checkbox.svelte +57 -29
  75. package/dist/components/simple/forms/FileInput.svelte +103 -58
  76. package/dist/components/simple/forms/FileInputList.svelte +115 -51
  77. package/dist/components/simple/forms/RadioButton.svelte +36 -3
  78. package/dist/components/simple/forms/Select.svelte +30 -3
  79. package/dist/components/simple/forms/SimpleTextField.svelte +94 -4
  80. package/dist/components/simple/forms/Switch.svelte +33 -11
  81. package/dist/components/simple/forms/Textarea.svelte +22 -5
  82. package/dist/components/simple/forms/VerticalSwitch.svelte +19 -2
  83. package/dist/components/simple/forms/VerticalTextSwitch.svelte +35 -3
  84. package/dist/components/simple/lists/BoxList.svelte +42 -11
  85. package/dist/components/simple/lists/ColorInvertedSelector.svelte +83 -25
  86. package/dist/components/simple/lists/HierarchyMenu.svelte +55 -20
  87. package/dist/components/simple/lists/Paginator.svelte +53 -34
  88. package/dist/components/simple/lists/SelectableMenuList.svelte +52 -16
  89. package/dist/components/simple/lists/SelectableVerticalList.svelte +169 -85
  90. package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +21 -14
  91. package/dist/components/simple/lists/SidebarMenuList.svelte +127 -79
  92. package/dist/components/simple/lists/SimpleTable.svelte +449 -239
  93. package/dist/components/simple/lists/SimpleTable.svelte.d.ts +31 -22
  94. package/dist/components/simple/loaders/CircularLoader.css +1 -1
  95. package/dist/components/simple/loaders/CircularLoader.svelte +11 -3
  96. package/dist/components/simple/loaders/Skeleton.svelte +3 -2
  97. package/dist/components/simple/media/Avatar.svelte +35 -15
  98. package/dist/components/simple/media/DescriptiveAvatar.svelte +30 -4
  99. package/dist/components/simple/media/FlagIcon.svelte +13 -3
  100. package/dist/components/simple/media/Icon.svelte +21 -6
  101. package/dist/components/simple/navigation/Breadcrumb.svelte +41 -9
  102. package/dist/components/simple/navigation/Chip.css +1 -1
  103. package/dist/components/simple/navigation/Chip.svelte +65 -36
  104. package/dist/components/simple/navigation/Drawer.svelte +132 -71
  105. package/dist/components/simple/navigation/HeaderMenu.svelte +69 -25
  106. package/dist/components/simple/navigation/Navigator.svelte +45 -11
  107. package/dist/components/simple/navigation/TabSwitcher.svelte +60 -19
  108. package/dist/components/simple/notifiers/AlertBanner.svelte +59 -11
  109. package/dist/components/simple/progress/ProgressBar.svelte +26 -10
  110. package/dist/components/simple/timeline/SimpleTimeLine.svelte +52 -5
  111. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +16 -9
  112. package/dist/components/simple/typography/Code.svelte +41 -12
  113. package/dist/stores/layouts/unstableSidebarOpened.d.ts +1 -1
  114. package/dist/stores/layouts/unstableSidebarOpened.js +1 -1
  115. package/dist/stores/theme.js +2 -2
  116. package/dist/utils/filters/builder.d.ts +2 -2
  117. package/dist/utils/filters/builder.js +7 -7
  118. package/dist/utils/filters/modifiers/where.d.ts +1 -1
  119. package/dist/utils/teleporter.js +4 -4
  120. package/package.json +39 -33
@@ -1,169 +1,302 @@
1
- <script lang="ts" generics="Data, WidgetName extends string">import './DashboardShaper.css';
2
- import lodash from 'lodash';
3
- import { Dialog, Icon } from "../../..";
4
- import { createId } from "@paralleldrive/cuid2";
5
- import Chip from "../../simple/navigation/Chip.svelte";
6
- const deepEqual = lodash.isEqual;
7
- let { layoutWidth = 6, layoutHeight = 4, widgets = $bindable([]), availableWidgetCells, someRowSlotEmpty = $bindable(true), preview = false, canAdd = true, lang = 'en', onaddWidgetCell, onremoveWidgetCell, widgetCellSnippet, widgetSelectionDialogHeaderSnippet, addWidgetButtonSnippet, } = $props();
8
- let widgetCells = $state([]);
9
- let normalizedWidgetGrid = $derived.by(() => {
10
- return computeNormalizedWidgetGrid(widgetCells || [], layoutWidth, layoutHeight);
11
- }), filledWidgetGrid = $derived.by(() => {
12
- return computeFilledWidgetGrid(normalizedWidgetGrid || [], layoutWidth, layoutHeight);
13
- }), addWidgetDialog = $state(false), addWidgetInfo = $state();
14
- $effect(() => {
15
- if (widgets) {
16
- calculateLocalWidgetsFromWidgets();
17
- }
18
- });
19
- function calculateLocalWidgetsFromWidgets() {
20
- widgetCells = widgets?.map((w) => {
21
- return {
22
- widget: {
23
- id: w.id,
24
- name: w.name,
25
- height: w.height,
26
- width: w.width,
27
- left: w.left,
28
- top: w.top,
29
- data: w.data,
30
- },
31
- columnSpanFrom: w.left,
32
- columnSpanTo: w.left + w.width,
33
- rowSpanFrom: w.top,
34
- rowSpanTo: w.top + w.height,
35
- };
36
- });
37
- }
38
- $effect(() => {
39
- const newVal = (normalizedWidgetGrid || []).some((row) => {
40
- for (let i = 0; i < layoutWidth; i += 1) {
41
- if (row[i] === undefined)
42
- return true;
1
+ <script lang="ts" generics="Data, WidgetName extends string">
2
+ import './DashboardShaper.css'
3
+ import type { Snippet } from "svelte"
4
+ import lodash from 'lodash'
5
+ import { Dialog, Icon } from "../../..";
6
+ import { createId } from "@paralleldrive/cuid2";
7
+ import Chip from "../../simple/navigation/Chip.svelte";
8
+
9
+ const deepEqual = lodash.isEqual
10
+
11
+ type Widget = {
12
+ id: number | string
13
+ name: WidgetName
14
+ height: number
15
+ width: number
16
+ left: number
17
+ top: number,
18
+ data?: Data
19
+ }
20
+ type AvailableWidget = {
21
+ name: WidgetName,
22
+ title: string
23
+ description?: string
24
+ icon: string
25
+ availableSizes: [number, number][], // [height, width][]
26
+ }
27
+
28
+ interface Props {
29
+ layoutWidth?: number
30
+ layoutHeight?: number
31
+ widgets: Widget[];
32
+ availableWidgetCells: AvailableWidget[]
33
+ someRowSlotEmpty?: boolean
34
+ preview?: boolean
35
+ canAdd?: boolean
36
+ lang?: 'it' | 'en'
37
+ onaddWidgetCell?: (event: {
38
+ widgetCell: (typeof widgetCells)[number]
39
+ }) => void
40
+ onremoveWidgetCell?: (event: {
41
+ widgetCell: (typeof widgetCells)[number]
42
+ }) => void
43
+ widgetCellSnippet?: Snippet<[{
44
+ widgetCell: (typeof filledWidgetGrid)[number] & { title?: string }
45
+ removeWidgetCell: typeof removeWidgetCell
46
+ }]>
47
+ widgetSelectionDialogHeaderSnippet?: Snippet<[]>
48
+ addWidgetButtonSnippet?: Snippet<[{
49
+ handleAddClick: typeof handleAddClick,
50
+ slot: Parameters<typeof handleAddClick>[0]['slot']
51
+ }]>
52
+ }
53
+
54
+ let {
55
+ layoutWidth = 6,
56
+ layoutHeight = 4,
57
+ widgets = $bindable([]),
58
+ availableWidgetCells,
59
+ someRowSlotEmpty = $bindable(true),
60
+ preview = false,
61
+ canAdd = true,
62
+ lang = 'en',
63
+ onaddWidgetCell,
64
+ onremoveWidgetCell,
65
+ widgetCellSnippet,
66
+ widgetSelectionDialogHeaderSnippet,
67
+ addWidgetButtonSnippet,
68
+ }: Props = $props()
69
+
70
+ let widgetCells: {
71
+ widget: Widget
72
+ columnSpanFrom: number
73
+ columnSpanTo: number
74
+ rowSpanFrom: number
75
+ rowSpanTo: number
76
+ availableHeight?: number
77
+ availableWidth?: number
78
+ }[] = $state([])
79
+
80
+ let normalizedWidgetGrid: ((typeof widgetCells)[number] | undefined)[][] = $derived.by(() => {
81
+ return computeNormalizedWidgetGrid(widgetCells || [], layoutWidth, layoutHeight)
82
+ }),
83
+ filledWidgetGrid: (Omit<(typeof widgetCells)[number], 'widget'> & {
84
+ widget?: (typeof widgetCells)[number]['widget'] | undefined
85
+ })[] = $derived.by(() => {
86
+ return computeFilledWidgetGrid(normalizedWidgetGrid || [], layoutWidth, layoutHeight)
87
+ }),
88
+ addWidgetDialog: boolean = $state(false),
89
+ addWidgetInfo:
90
+ | {
91
+ availableHeight: number
92
+ availableWidth: number
93
+ fromRow: number
94
+ fromColumn: number
43
95
  }
44
- return false;
45
- });
96
+ | undefined = $state()
97
+
98
+ $effect(() => {
99
+ if (widgets) {
100
+ calculateLocalWidgetsFromWidgets()
101
+ }
102
+ });
103
+ function calculateLocalWidgetsFromWidgets() {
104
+ widgetCells = widgets?.map((w) => {
105
+ return {
106
+ widget: {
107
+ id: w.id,
108
+ name: w.name,
109
+ height: w.height,
110
+ width: w.width,
111
+ left: w.left,
112
+ top: w.top,
113
+ data: w.data,
114
+ },
115
+ columnSpanFrom: w.left,
116
+ columnSpanTo: w.left + w.width,
117
+ rowSpanFrom: w.top,
118
+ rowSpanTo: w.top + w.height,
119
+ }
120
+ })
121
+ }
122
+
123
+ $effect(() => {
124
+ const newVal = (normalizedWidgetGrid || []).some((row) => {
125
+ for (let i = 0; i < layoutWidth; i += 1) {
126
+ if (row[i] === undefined) return true
127
+ }
128
+ return false
129
+ })
46
130
  if (newVal !== someRowSlotEmpty) {
47
- someRowSlotEmpty = newVal;
131
+ someRowSlotEmpty = newVal
48
132
  }
49
- });
50
- function computeNormalizedWidgetGrid(cells, layoutWidthParam, layoutHeightParam) {
51
- const grid = [];
133
+ })
134
+
135
+ function computeNormalizedWidgetGrid(
136
+ cells: (typeof widgetCells)[number][],
137
+ layoutWidthParam: number,
138
+ layoutHeightParam: number
139
+ ) {
140
+ const grid: ((typeof widgetCells)[number] | undefined)[][] = []
141
+
52
142
  for (let i = 0; i < cells.length; i++) {
53
- const widgetCell = cells[i];
54
- const rowFrom = widgetCell.rowSpanFrom - 1;
55
- const rowTo = widgetCell.rowSpanTo - 1;
56
- const colFrom = widgetCell.columnSpanFrom - 1;
57
- const colTo = widgetCell.columnSpanTo - 1;
58
- for (let r = rowFrom; r < rowTo; r++) {
59
- if (!grid[r])
60
- grid[r] = [];
61
- for (let c = colFrom; c < colTo; c++) {
62
- grid[r][c] = widgetCell;
63
- }
143
+ const widgetCell = cells[i]
144
+
145
+ const rowFrom = widgetCell.rowSpanFrom - 1
146
+ const rowTo = widgetCell.rowSpanTo - 1
147
+ const colFrom = widgetCell.columnSpanFrom - 1
148
+ const colTo = widgetCell.columnSpanTo - 1
149
+
150
+ for (let r = rowFrom; r < rowTo; r++) {
151
+ if (!grid[r]) grid[r] = []
152
+ for (let c = colFrom; c < colTo; c++) {
153
+ grid[r][c] = widgetCell
64
154
  }
155
+ }
65
156
  }
157
+
66
158
  for (let r = 0; r < grid.length; r++) {
67
- if (!grid[r])
68
- grid[r] = [];
69
- for (let c = 0; c < layoutWidthParam; c++) {
70
- if (grid[r][c] === undefined)
71
- grid[r][c] = undefined;
72
- }
159
+ if (!grid[r]) grid[r] = []
160
+ for (let c = 0; c < layoutWidthParam; c++) {
161
+ if (grid[r][c] === undefined) grid[r][c] = undefined
162
+ }
73
163
  }
74
- return grid;
75
- }
76
- function computeFilledWidgetGrid(normGrid, layoutWidthParam, layoutHeightParam) {
77
- const filled = [];
164
+
165
+ return grid
166
+ }
167
+
168
+ function computeFilledWidgetGrid(
169
+ normGrid: ((typeof widgetCells)[number] | undefined)[][],
170
+ layoutWidthParam: number,
171
+ layoutHeightParam: number
172
+ ) {
173
+ const filled: (Omit<(typeof widgetCells)[number], 'widget'> & {
174
+ widget?: (typeof widgetCells)[number]['widget'] | undefined
175
+ })[] = []
176
+
78
177
  for (let r = 0; r < normGrid.length; r++) {
79
- const normalizedRow = normGrid[r] ?? [];
80
- for (let c = 0; c < layoutWidthParam; c++) {
81
- const rowItem = normalizedRow[c];
82
- if (rowItem === undefined && (normalizedRow[c - 1] !== undefined || c === 0)) {
83
- let availableHeight = 1;
84
- while (normGrid[r + availableHeight]?.[c] === undefined &&
85
- r + availableHeight < layoutHeightParam) {
86
- availableHeight += 1;
87
- }
88
- let availableWidth = 1;
89
- while (normGrid[r]?.[c + availableWidth] === undefined &&
90
- c + availableWidth < layoutWidthParam) {
91
- availableWidth += 1;
92
- }
93
- filled.push({
94
- rowSpanFrom: r + 1,
95
- rowSpanTo: r + 2,
96
- columnSpanFrom: c + 1,
97
- columnSpanTo: c + availableWidth + 1,
98
- availableHeight,
99
- availableWidth
100
- });
101
- }
102
- else if (rowItem !== undefined &&
103
- filled.every((w) => w.widget?.id !== rowItem?.widget.id)) {
104
- filled.push(rowItem);
105
- }
178
+ const normalizedRow = normGrid[r] ?? []
179
+ for (let c = 0; c < layoutWidthParam; c++) {
180
+ const rowItem = normalizedRow[c]
181
+ if (rowItem === undefined && (normalizedRow[c - 1] !== undefined || c === 0)) {
182
+
183
+ let availableHeight = 1
184
+ while (
185
+ normGrid[r + availableHeight]?.[c] === undefined &&
186
+ r + availableHeight < layoutHeightParam
187
+ ) {
188
+ availableHeight += 1
189
+ }
190
+
191
+
192
+ let availableWidth = 1
193
+ while (
194
+ normGrid[r]?.[c + availableWidth] === undefined &&
195
+ c + availableWidth < layoutWidthParam
196
+ ) {
197
+ availableWidth += 1
198
+ }
199
+
200
+ filled.push({
201
+ rowSpanFrom: r + 1,
202
+ rowSpanTo: r + 2,
203
+ columnSpanFrom: c + 1,
204
+ columnSpanTo: c + availableWidth + 1,
205
+ availableHeight,
206
+ availableWidth
207
+ })
208
+ } else if (
209
+ rowItem !== undefined &&
210
+ filled.every((w) => w.widget?.id !== rowItem?.widget.id)
211
+ ) {
212
+ filled.push(rowItem)
106
213
  }
214
+ }
107
215
  }
108
- return filled;
109
- }
110
- function handleAddClick(params) {
111
- addWidgetDialog = true;
216
+
217
+ return filled
218
+ }
219
+
220
+ function handleAddClick(params: { slot: (typeof filledWidgetGrid)[number] }) {
221
+ addWidgetDialog = true
112
222
  addWidgetInfo = {
113
- availableHeight: params.slot.availableHeight || 1,
114
- availableWidth: params.slot.availableWidth || 1,
115
- fromRow: params.slot.rowSpanFrom,
116
- fromColumn: params.slot.columnSpanFrom
117
- };
118
- }
119
- function addWidgetCell(params) {
223
+ availableHeight: params.slot.availableHeight || 1,
224
+ availableWidth: params.slot.availableWidth || 1,
225
+ fromRow: params.slot.rowSpanFrom,
226
+ fromColumn: params.slot.columnSpanFrom
227
+ }
228
+ }
229
+
230
+ function addWidgetCell(params: {
231
+ widget: Widget
232
+ fromRow: number
233
+ fromColumn: number
234
+ width: number
235
+ height: number
236
+ }) {
120
237
  const widgetCellToAdd = {
121
- widget: params.widget,
122
- rowSpanFrom: params.fromRow,
123
- rowSpanTo: params.fromRow + params.height,
124
- columnSpanFrom: params.fromColumn,
125
- columnSpanTo: params.fromColumn + params.width
126
- };
127
- const newCells = [...(widgetCells || []), widgetCellToAdd];
238
+ widget: params.widget,
239
+ rowSpanFrom: params.fromRow,
240
+ rowSpanTo: params.fromRow + params.height,
241
+ columnSpanFrom: params.fromColumn,
242
+ columnSpanTo: params.fromColumn + params.width
243
+ }
244
+
245
+ const newCells = [...(widgetCells || []), widgetCellToAdd]
128
246
  if (!deepEqual(newCells, widgetCells)) {
129
- widgetCells = newCells;
247
+ widgetCells = newCells
130
248
  }
131
- calculateWidgetsFromLocalWidgets();
249
+
250
+ calculateWidgetsFromLocalWidgets()
251
+
132
252
  onaddWidgetCell?.({
133
- widgetCell: widgetCellToAdd
134
- });
135
- }
136
- function removeWidgetCell(params) {
137
- const widgetCellToRemove = (widgetCells || []).find((w) => w.widget.id === params.id);
138
- const newCells = (widgetCells || []).filter((w) => w.widget.id !== params.id);
253
+ widgetCell: widgetCellToAdd
254
+ })
255
+ }
256
+
257
+ function removeWidgetCell(params: { id: string | number }) {
258
+ const widgetCellToRemove = (widgetCells || []).find((w) => w.widget.id === params.id)
259
+ const newCells = (widgetCells || []).filter((w) => w.widget.id !== params.id)
260
+
139
261
  if (!deepEqual(newCells, widgetCells)) {
140
- widgetCells = newCells;
262
+ widgetCells = newCells
141
263
  }
142
- calculateWidgetsFromLocalWidgets();
264
+
265
+ calculateWidgetsFromLocalWidgets()
266
+
143
267
  if (!!widgetCellToRemove) {
144
- onremoveWidgetCell?.({
145
- widgetCell: widgetCellToRemove
146
- });
268
+ onremoveWidgetCell?.({
269
+ widgetCell: widgetCellToRemove
270
+ })
147
271
  }
148
- }
149
- function calculateWidgetsFromLocalWidgets() {
150
- widgets = widgetCells?.map((lWidget) => {
151
- return {
152
- id: lWidget.widget.id,
153
- name: lWidget.widget.name,
154
- height: lWidget.widget.height,
155
- width: lWidget.widget.width,
156
- left: lWidget.widget.left,
157
- top: lWidget.widget.top,
158
- };
159
- });
160
- }
161
- function closeAddWidgetDialog() {
162
- addWidgetDialog = false;
163
- }
164
- function availableSizes(params) {
165
- return params.availableSizes.filter((as) => as[0] <= params.availableHeight && as[1] <= params.availableWidth);
166
- }
272
+ }
273
+
274
+ function calculateWidgetsFromLocalWidgets() {
275
+ widgets = widgetCells?.map((lWidget) => {
276
+ return {
277
+ id: lWidget.widget.id,
278
+ name: lWidget.widget.name,
279
+ height: lWidget.widget.height,
280
+ width: lWidget.widget.width,
281
+ left: lWidget.widget.left,
282
+ top: lWidget.widget.top,
283
+ }
284
+ })
285
+ }
286
+
287
+ function closeAddWidgetDialog() {
288
+ addWidgetDialog = false
289
+ }
290
+
291
+ function availableSizes(params: {
292
+ availableHeight: number
293
+ availableWidth: number
294
+ availableSizes: [number, number][]
295
+ }): [number, number][] {
296
+ return params.availableSizes.filter(
297
+ (as) => as[0] <= params.availableHeight && as[1] <= params.availableWidth
298
+ )
299
+ }
167
300
  </script>
168
301
 
169
302
  <div
@@ -238,7 +371,7 @@ function availableSizes(params) {
238
371
  {@render widgetSelectionDialogHeaderSnippet()}
239
372
  {:else}
240
373
  <div class="header">
241
- <Icon name={"mdi-widgets-outline"} --icon-size="30px"/>
374
+ <Icon name="mdi-widgets-outline" --icon-size="30px"/>
242
375
  <div class="title">{lang == 'en' ? 'Add widget' : 'Aggiungi widget'}</div>
243
376
  </div>
244
377
  {/if}
@@ -1,7 +1,7 @@
1
1
  import './DashboardShaper.css';
2
2
  import type { Snippet } from "svelte";
3
- declare class __sveltets_Render<Data, WidgetName extends string> {
4
- props(): {
3
+ declare function $$render<Data, WidgetName extends string>(): {
4
+ props: {
5
5
  layoutWidth?: number;
6
6
  layoutHeight?: number;
7
7
  widgets: {
@@ -11,7 +11,7 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
11
11
  width: number;
12
12
  left: number;
13
13
  top: number;
14
- data?: Data | undefined;
14
+ data?: Data;
15
15
  }[];
16
16
  availableWidgetCells: {
17
17
  name: WidgetName;
@@ -24,7 +24,7 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
24
24
  preview?: boolean;
25
25
  canAdd?: boolean;
26
26
  lang?: "it" | "en";
27
- onaddWidgetCell?: ((event: {
27
+ onaddWidgetCell?: (event: {
28
28
  widgetCell: {
29
29
  widget: {
30
30
  id: number | string;
@@ -33,7 +33,7 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
33
33
  width: number;
34
34
  left: number;
35
35
  top: number;
36
- data?: Data | undefined;
36
+ data?: Data;
37
37
  };
38
38
  columnSpanFrom: number;
39
39
  columnSpanTo: number;
@@ -42,8 +42,8 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
42
42
  availableHeight?: number;
43
43
  availableWidth?: number;
44
44
  };
45
- }) => void) | undefined;
46
- onremoveWidgetCell?: ((event: {
45
+ }) => void;
46
+ onremoveWidgetCell?: (event: {
47
47
  widgetCell: {
48
48
  widget: {
49
49
  id: number | string;
@@ -52,7 +52,7 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
52
52
  width: number;
53
53
  left: number;
54
54
  top: number;
55
- data?: Data | undefined;
55
+ data?: Data;
56
56
  };
57
57
  columnSpanFrom: number;
58
58
  columnSpanTo: number;
@@ -61,9 +61,9 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
61
61
  availableHeight?: number;
62
62
  availableWidth?: number;
63
63
  };
64
- }) => void) | undefined;
64
+ }) => void;
65
65
  widgetCellSnippet?: Snippet<[{
66
- widgetCell: Omit<{
66
+ widgetCell: (Omit<{
67
67
  widget: {
68
68
  id: number | string;
69
69
  name: WidgetName;
@@ -71,7 +71,7 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
71
71
  width: number;
72
72
  left: number;
73
73
  top: number;
74
- data?: Data | undefined;
74
+ data?: Data;
75
75
  };
76
76
  columnSpanFrom: number;
77
77
  columnSpanTo: number;
@@ -87,15 +87,15 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
87
87
  width: number;
88
88
  left: number;
89
89
  top: number;
90
- data?: Data | undefined;
90
+ data?: Data;
91
91
  } | undefined;
92
- } & {
92
+ }) & {
93
93
  title?: string;
94
94
  };
95
95
  removeWidgetCell: (params: {
96
96
  id: string | number;
97
97
  }) => void;
98
- }]> | undefined;
98
+ }]>;
99
99
  widgetSelectionDialogHeaderSnippet?: Snippet<[]>;
100
100
  addWidgetButtonSnippet?: Snippet<[{
101
101
  handleAddClick: (params: {
@@ -107,7 +107,7 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
107
107
  width: number;
108
108
  left: number;
109
109
  top: number;
110
- data?: Data | undefined;
110
+ data?: Data;
111
111
  };
112
112
  columnSpanFrom: number;
113
113
  columnSpanTo: number;
@@ -123,41 +123,50 @@ declare class __sveltets_Render<Data, WidgetName extends string> {
123
123
  width: number;
124
124
  left: number;
125
125
  top: number;
126
- data?: Data | undefined;
126
+ data?: Data;
127
127
  } | undefined;
128
128
  };
129
129
  }) => void;
130
- slot: Omit<{
131
- widget: {
132
- id: number | string;
133
- name: WidgetName;
134
- height: number;
135
- width: number;
136
- left: number;
137
- top: number;
138
- data?: Data | undefined;
130
+ slot: Parameters<(params: {
131
+ slot: Omit<{
132
+ widget: {
133
+ id: number | string;
134
+ name: WidgetName;
135
+ height: number;
136
+ width: number;
137
+ left: number;
138
+ top: number;
139
+ data?: Data;
140
+ };
141
+ columnSpanFrom: number;
142
+ columnSpanTo: number;
143
+ rowSpanFrom: number;
144
+ rowSpanTo: number;
145
+ availableHeight?: number;
146
+ availableWidth?: number;
147
+ }, "widget"> & {
148
+ widget?: {
149
+ id: number | string;
150
+ name: WidgetName;
151
+ height: number;
152
+ width: number;
153
+ left: number;
154
+ top: number;
155
+ data?: Data;
156
+ } | undefined;
139
157
  };
140
- columnSpanFrom: number;
141
- columnSpanTo: number;
142
- rowSpanFrom: number;
143
- rowSpanTo: number;
144
- availableHeight?: number;
145
- availableWidth?: number;
146
- }, "widget"> & {
147
- widget?: {
148
- id: number | string;
149
- name: WidgetName;
150
- height: number;
151
- width: number;
152
- left: number;
153
- top: number;
154
- data?: Data | undefined;
155
- } | undefined;
156
- };
157
- }]> | undefined;
158
+ }) => void>[0]["slot"];
159
+ }]>;
158
160
  };
159
- events(): {};
160
- slots(): {};
161
+ exports: {};
162
+ bindings: "widgets" | "someRowSlotEmpty";
163
+ slots: {};
164
+ events: {};
165
+ };
166
+ declare class __sveltets_Render<Data, WidgetName extends string> {
167
+ props(): ReturnType<typeof $$render<Data, WidgetName>>['props'];
168
+ events(): ReturnType<typeof $$render<Data, WidgetName>>['events'];
169
+ slots(): ReturnType<typeof $$render<Data, WidgetName>>['slots'];
161
170
  bindings(): "widgets" | "someRowSlotEmpty";
162
171
  exports(): {};
163
172
  }