@likable-hair/svelte 3.3.21 → 3.3.23

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 (202) hide show
  1. package/dist/components/composed/buttons/ActivableButton.svelte +6 -2
  2. package/dist/components/composed/buttons/ActivableButton.svelte.d.ts +36 -32
  3. package/dist/components/composed/common/MenuOrDrawer.svelte +21 -5
  4. package/dist/components/composed/common/MenuOrDrawer.svelte.d.ts +50 -36
  5. package/dist/components/composed/common/MenuOrDrawerOptions.svelte +29 -13
  6. package/dist/components/composed/common/MenuOrDrawerOptions.svelte.d.ts +34 -30
  7. package/dist/components/composed/common/QuickActions.svelte +52 -20
  8. package/dist/components/composed/common/QuickActions.svelte.d.ts +24 -20
  9. package/dist/components/composed/common/ToolTip.svelte +31 -22
  10. package/dist/components/composed/common/ToolTip.svelte.d.ts +32 -43
  11. package/dist/components/composed/forms/AsyncAutocomplete.svelte +44 -23
  12. package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +44 -39
  13. package/dist/components/composed/forms/AvatarDropdown.svelte +57 -27
  14. package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +45 -41
  15. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +35 -17
  16. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte.d.ts +41 -37
  17. package/dist/components/composed/forms/CountriesAutocomplete.svelte +16 -7
  18. package/dist/components/composed/forms/CountriesAutocomplete.svelte.d.ts +31 -60
  19. package/dist/components/composed/forms/DatePickerTextField.svelte +166 -114
  20. package/dist/components/composed/forms/DatePickerTextField.svelte.d.ts +67 -63
  21. package/dist/components/composed/forms/Dropdown.svelte +51 -21
  22. package/dist/components/composed/forms/Dropdown.svelte.d.ts +48 -43
  23. package/dist/components/composed/forms/IconsDropdown.svelte +61 -33
  24. package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +30 -26
  25. package/dist/components/composed/forms/LabelAndSelect.svelte +32 -7
  26. package/dist/components/composed/forms/LabelAndSelect.svelte.d.ts +35 -31
  27. package/dist/components/composed/forms/LabelAndTextField.svelte +30 -5
  28. package/dist/components/composed/forms/LabelAndTextField.svelte.d.ts +46 -42
  29. package/dist/components/composed/forms/ToggleList.svelte +59 -33
  30. package/dist/components/composed/forms/ToggleList.svelte.d.ts +21 -17
  31. package/dist/components/composed/forms/YearPickerTextField.svelte +114 -74
  32. package/dist/components/composed/forms/YearPickerTextField.svelte.d.ts +53 -49
  33. package/dist/components/composed/list/DynamicTable.svelte +1102 -707
  34. package/dist/components/composed/list/DynamicTable.svelte.d.ts +369 -365
  35. package/dist/components/composed/list/PaginatedTable.svelte +139 -76
  36. package/dist/components/composed/list/PaginatedTable.svelte.d.ts +108 -108
  37. package/dist/components/composed/progress/HorizontalStackedProgress.svelte +58 -30
  38. package/dist/components/composed/progress/HorizontalStackedProgress.svelte.d.ts +25 -21
  39. package/dist/components/composed/search/DynamicFilters.svelte +103 -82
  40. package/dist/components/composed/search/DynamicFilters.svelte.d.ts +31 -27
  41. package/dist/components/composed/search/FilterEditor.svelte +106 -77
  42. package/dist/components/composed/search/FilterEditor.svelte.d.ts +37 -33
  43. package/dist/components/composed/search/Filters.svelte +361 -292
  44. package/dist/components/composed/search/Filters.svelte.d.ts +55 -51
  45. package/dist/components/composed/search/GlobalSearchTextField.svelte +79 -41
  46. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +43 -39
  47. package/dist/components/composed/search/MobileFilterEditor.svelte +135 -93
  48. package/dist/components/composed/search/MobileFilterEditor.svelte.d.ts +39 -35
  49. package/dist/components/composed/search/SearchBar.svelte +28 -5
  50. package/dist/components/composed/search/SearchBar.svelte.d.ts +34 -30
  51. package/dist/components/composed/search/SearchResults.svelte +42 -7
  52. package/dist/components/composed/search/SearchResults.svelte.d.ts +40 -36
  53. package/dist/components/composed/shop/ProductCard.svelte +18 -4
  54. package/dist/components/composed/shop/ProductCard.svelte.d.ts +32 -28
  55. package/dist/components/composed/shop/ProductsGrid.svelte +22 -2
  56. package/dist/components/composed/shop/ProductsGrid.svelte.d.ts +44 -40
  57. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +77 -38
  58. package/dist/components/layouts/CollapsibleSideBarLayout.svelte.d.ts +109 -69
  59. package/dist/components/layouts/StableDividedSideBarLayout.svelte +47 -17
  60. package/dist/components/layouts/StableDividedSideBarLayout.svelte.d.ts +50 -32
  61. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +53 -30
  62. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte.d.ts +103 -63
  63. package/dist/components/simple/buttons/Button.svelte +78 -32
  64. package/dist/components/simple/buttons/Button.svelte.d.ts +47 -35
  65. package/dist/components/simple/buttons/LinkButton.svelte +54 -22
  66. package/dist/components/simple/buttons/LinkButton.svelte.d.ts +50 -33
  67. package/dist/components/simple/charts/GanymedeBarChart.svelte +172 -134
  68. package/dist/components/simple/charts/GanymedeBarChart.svelte.d.ts +50 -46
  69. package/dist/components/simple/charts/GanymedeLineChart.svelte +157 -115
  70. package/dist/components/simple/charts/GanymedeLineChart.svelte.d.ts +51 -47
  71. package/dist/components/simple/charts/GanymedePieChart.svelte +62 -39
  72. package/dist/components/simple/charts/GanymedePieChart.svelte.d.ts +37 -33
  73. package/dist/components/simple/common/Card.svelte +20 -1
  74. package/dist/components/simple/common/Card.svelte.d.ts +51 -38
  75. package/dist/components/simple/common/CollapsibleDivider.svelte +23 -11
  76. package/dist/components/simple/common/CollapsibleDivider.svelte.d.ts +29 -25
  77. package/dist/components/simple/common/Divider.svelte +8 -2
  78. package/dist/components/simple/common/Divider.svelte.d.ts +23 -19
  79. package/dist/components/simple/common/Gesture.svelte +64 -46
  80. package/dist/components/simple/common/Gesture.svelte.d.ts +21 -17
  81. package/dist/components/simple/common/InfiniteScroll.svelte +52 -29
  82. package/dist/components/simple/common/InfiniteScroll.svelte.d.ts +24 -20
  83. package/dist/components/simple/common/IntersectionObserver.svelte +45 -32
  84. package/dist/components/simple/common/IntersectionObserver.svelte.d.ts +34 -21
  85. package/dist/components/simple/common/MediaQuery.svelte +30 -21
  86. package/dist/components/simple/common/MediaQuery.svelte.d.ts +34 -30
  87. package/dist/components/simple/common/Menu.svelte +290 -201
  88. package/dist/components/simple/common/Menu.svelte.d.ts +51 -40
  89. package/dist/components/simple/common/Playground.svelte +18 -17
  90. package/dist/components/simple/common/Playground.svelte.d.ts +19 -15
  91. package/dist/components/simple/common/VerticalDraggableList.svelte +35 -16
  92. package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +33 -29
  93. package/dist/components/simple/dashboards/DashboardGridShaper.svelte +32 -26
  94. package/dist/components/simple/dashboards/DashboardGridShaper.svelte.d.ts +16 -12
  95. package/dist/components/simple/dates/Calendar.svelte +52 -28
  96. package/dist/components/simple/dates/Calendar.svelte.d.ts +45 -41
  97. package/dist/components/simple/dates/DatePicker.svelte +90 -60
  98. package/dist/components/simple/dates/DatePicker.svelte.d.ts +44 -40
  99. package/dist/components/simple/dates/MonthSelector.svelte +37 -15
  100. package/dist/components/simple/dates/MonthSelector.svelte.d.ts +35 -31
  101. package/dist/components/simple/dates/TimePicker.svelte +45 -31
  102. package/dist/components/simple/dates/TimePicker.svelte.d.ts +24 -20
  103. package/dist/components/simple/dates/TimePickerTextField.svelte +56 -35
  104. package/dist/components/simple/dates/TimePickerTextField.svelte.d.ts +28 -24
  105. package/dist/components/simple/dates/YearSelector.svelte +54 -29
  106. package/dist/components/simple/dates/YearSelector.svelte.d.ts +35 -31
  107. package/dist/components/simple/dialogs/Dialog.svelte +92 -62
  108. package/dist/components/simple/dialogs/Dialog.svelte.d.ts +42 -28
  109. package/dist/components/simple/forms/Autocomplete.svelte +201 -142
  110. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +83 -79
  111. package/dist/components/simple/forms/Checkbox.svelte +40 -24
  112. package/dist/components/simple/forms/Checkbox.svelte.d.ts +25 -21
  113. package/dist/components/simple/forms/FileInput.svelte +88 -48
  114. package/dist/components/simple/forms/FileInput.svelte.d.ts +37 -33
  115. package/dist/components/simple/forms/FileInputList.svelte +52 -34
  116. package/dist/components/simple/forms/FileInputList.svelte.d.ts +43 -39
  117. package/dist/components/simple/forms/RadioButton.svelte +11 -3
  118. package/dist/components/simple/forms/RadioButton.svelte.d.ts +31 -27
  119. package/dist/components/simple/forms/Select.svelte +16 -3
  120. package/dist/components/simple/forms/Select.svelte.d.ts +24 -20
  121. package/dist/components/simple/forms/SimpleTextField.svelte +53 -6
  122. package/dist/components/simple/forms/SimpleTextField.svelte.d.ts +64 -60
  123. package/dist/components/simple/forms/Switch.svelte +30 -16
  124. package/dist/components/simple/forms/Switch.svelte.d.ts +25 -21
  125. package/dist/components/simple/forms/Textarea.svelte +27 -2
  126. package/dist/components/simple/forms/Textarea.svelte.d.ts +41 -37
  127. package/dist/components/simple/forms/Textfield.svelte +56 -18
  128. package/dist/components/simple/forms/Textfield.svelte.d.ts +55 -51
  129. package/dist/components/simple/forms/TreeEditor.svelte +141 -95
  130. package/dist/components/simple/forms/TreeEditor.svelte.d.ts +42 -38
  131. package/dist/components/simple/forms/TreeEditorItem.svelte +77 -42
  132. package/dist/components/simple/forms/TreeEditorItem.svelte.d.ts +54 -50
  133. package/dist/components/simple/forms/VerticalSwitch.svelte +11 -1
  134. package/dist/components/simple/forms/VerticalSwitch.svelte.d.ts +32 -28
  135. package/dist/components/simple/forms/VerticalTextSwitch.svelte +15 -3
  136. package/dist/components/simple/forms/VerticalTextSwitch.svelte.d.ts +30 -26
  137. package/dist/components/simple/lists/ColorInvertedSelector.svelte +53 -23
  138. package/dist/components/simple/lists/ColorInvertedSelector.svelte.d.ts +46 -42
  139. package/dist/components/simple/lists/HierarchyMenu.svelte +38 -19
  140. package/dist/components/simple/lists/HierarchyMenu.svelte.d.ts +34 -30
  141. package/dist/components/simple/lists/Paginator.svelte +50 -41
  142. package/dist/components/simple/lists/Paginator.svelte.d.ts +23 -19
  143. package/dist/components/simple/lists/SelectableMenuList.svelte +43 -15
  144. package/dist/components/simple/lists/SelectableMenuList.svelte.d.ts +24 -20
  145. package/dist/components/simple/lists/SelectableVerticalList.svelte +99 -57
  146. package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +51 -47
  147. package/dist/components/simple/lists/SidebarMenuList.svelte +115 -70
  148. package/dist/components/simple/lists/SidebarMenuList.svelte.d.ts +26 -22
  149. package/dist/components/simple/lists/SimpleTable.svelte +264 -154
  150. package/dist/components/simple/lists/SimpleTable.svelte.d.ts +70 -66
  151. package/dist/components/simple/loaders/CircularLoader.svelte +16 -5
  152. package/dist/components/simple/loaders/CircularLoader.svelte.d.ts +19 -15
  153. package/dist/components/simple/loaders/Skeleton.svelte +3 -2
  154. package/dist/components/simple/loaders/Skeleton.svelte.d.ts +16 -12
  155. package/dist/components/simple/media/AttachmentDownloader.svelte +17 -3
  156. package/dist/components/simple/media/AttachmentDownloader.svelte.d.ts +32 -28
  157. package/dist/components/simple/media/Avatar.svelte +18 -12
  158. package/dist/components/simple/media/Avatar.svelte.d.ts +31 -20
  159. package/dist/components/simple/media/Carousel.svelte +29 -11
  160. package/dist/components/simple/media/Carousel.svelte.d.ts +28 -24
  161. package/dist/components/simple/media/DescriptiveAvatar.svelte +12 -4
  162. package/dist/components/simple/media/DescriptiveAvatar.svelte.d.ts +44 -28
  163. package/dist/components/simple/media/FlagIcon.svelte +8 -5
  164. package/dist/components/simple/media/FlagIcon.svelte.d.ts +19 -15
  165. package/dist/components/simple/media/Gallery.svelte +49 -29
  166. package/dist/components/simple/media/Gallery.svelte.d.ts +27 -23
  167. package/dist/components/simple/media/Icon.svelte +9 -4
  168. package/dist/components/simple/media/Icon.svelte.d.ts +24 -20
  169. package/dist/components/simple/media/Image.svelte +42 -20
  170. package/dist/components/simple/media/Image.svelte.d.ts +44 -33
  171. package/dist/components/simple/media/ImageGrid.svelte +37 -12
  172. package/dist/components/simple/media/ImageGrid.svelte.d.ts +32 -28
  173. package/dist/components/simple/navigation/Breadcrumb.svelte +28 -10
  174. package/dist/components/simple/navigation/Breadcrumb.svelte.d.ts +26 -22
  175. package/dist/components/simple/navigation/Chip.svelte +44 -23
  176. package/dist/components/simple/navigation/Chip.svelte.d.ts +42 -31
  177. package/dist/components/simple/navigation/Drawer.svelte +107 -65
  178. package/dist/components/simple/navigation/Drawer.svelte.d.ts +50 -37
  179. package/dist/components/simple/navigation/HeaderMenu.svelte +40 -23
  180. package/dist/components/simple/navigation/HeaderMenu.svelte.d.ts +39 -35
  181. package/dist/components/simple/navigation/Navigator.svelte +30 -8
  182. package/dist/components/simple/navigation/Navigator.svelte.d.ts +28 -24
  183. package/dist/components/simple/navigation/TabSwitcher.svelte +83 -47
  184. package/dist/components/simple/navigation/TabSwitcher.svelte.d.ts +38 -34
  185. package/dist/components/simple/notifiers/AlertBanner.svelte +43 -15
  186. package/dist/components/simple/notifiers/AlertBanner.svelte.d.ts +41 -37
  187. package/dist/components/simple/progress/ProgressBar.svelte +20 -13
  188. package/dist/components/simple/progress/ProgressBar.svelte.d.ts +21 -17
  189. package/dist/components/simple/timeline/SimpleTimeLine.svelte +19 -5
  190. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +39 -35
  191. package/dist/components/simple/typography/Code.svelte +27 -12
  192. package/dist/components/simple/typography/Code.svelte.d.ts +28 -24
  193. package/dist/stores/debounce.d.ts +0 -1
  194. package/dist/stores/layouts/unstableSidebarOpened.d.ts +0 -1
  195. package/dist/stores/mediaQuery.d.ts +0 -1
  196. package/dist/stores/theme.d.ts +0 -1
  197. package/dist/utils/filters/builder.d.ts +2 -0
  198. package/dist/utils/filters/builder.js +20 -0
  199. package/dist/utils/filters/filters.d.ts +2 -0
  200. package/dist/utils/filters/filters.js +6 -2
  201. package/dist/utils/filters/modifiers/where.d.ts +10 -3
  202. package/package.json +1 -1
@@ -1,88 +1,109 @@
1
- <script>import { FilterEditor, Icon } from "../../..";
2
- import { createEventDispatcher } from "svelte";
3
- export let filters = [], lang = "en", mAndDown = false, updateMultiFilterValues;
4
- let selectedFilter;
5
- let tmpFilters = filters.reduce((acc, f) => {
6
- if (f.active) {
7
- acc[f.name] = f;
8
- }
9
- return acc;
10
- }, {});
11
- const dispatch = createEventDispatcher();
12
- let labelsMapper = lang == "en" ? {
13
- equal: { extended: "equal to", short: "equal" },
14
- like: { short: "includes" },
15
- ilike: { short: "includes" },
16
- contains: { short: "contains" },
17
- greater: { short: "greater", extended: "greater than" },
18
- lower: { short: "lower", extended: "lower than" },
19
- between: { short: "between", extended: "is between" },
20
- different: { short: "different", extended: "different from" }
21
- } : {
22
- equal: { extended: "uguale a", short: "uguale" },
23
- like: { short: "include" },
24
- ilike: { short: "include" },
25
- contains: { short: "contiene" },
26
- greater: { short: "maggiore", extended: "maggiore di" },
27
- lower: { short: "minore", extended: "minore di" },
28
- between: { short: "compreso", extended: "\xE8 compreso tra" },
29
- different: { short: "diverso", extended: "diverso da" }
30
- };
31
- function selectFilter(filter) {
32
- selectedFilter = filter === selectedFilter ? void 0 : filter;
33
- }
34
- function handleKeyPress(event, filter) {
35
- if (event.key === "Enter" || event.key === " ") {
36
- selectFilter(filter);
37
- }
38
- }
39
- function handleFilterChange() {
40
- if (!!selectedFilter) {
41
- dispatch("change", { filter: tmpFilters[selectedFilter.name] });
42
- filters = filters.map((f) => {
43
- if (f.name === selectedFilter?.name) {
44
- return tmpFilters[selectedFilter.name];
45
- }
46
- return f;
47
- });
48
- }
49
- }
50
- function isActiveFilter(filter) {
51
- let newValue = {}, newValid = false;
52
- if (filter.type == "select") {
53
- newValue = filter.values;
54
- if (!!newValue && newValue.length > 0) {
55
- newValid = true;
56
- }
57
- } else if ("mode" in filter && filter.mode == "between") {
58
- newValue.to = filter.to;
59
- newValue.from = filter.from;
60
- if (!!newValue.from || !!newValue.to) {
61
- newValid = true;
62
- }
63
- } else if (filter.type == "custom") {
64
- newValue = filter.value;
65
- if (Array.isArray(newValue) && newValue.length > 0 || !Array.isArray(newValue) && !!newValue) {
66
- newValid = true;
1
+ <script lang="ts">
2
+ import { FilterEditor, Icon } from "../../..";
3
+ import type { DateMode, Filter, NumberMode, SelectMode, StringMode } from "../../../utils/filters/filters";
4
+ import { createEventDispatcher } from "svelte"
5
+
6
+
7
+ export let filters: Filter[] = [],
8
+ lang: "it" | "en" = "en",
9
+ mAndDown: boolean = false,
10
+ updateMultiFilterValues: (filterName: string, newValue: any, newValid: boolean, mode?: NumberMode | StringMode | SelectMode | DateMode) => void;
11
+
12
+ let selectedFilter: Filter | undefined;
13
+ let tmpFilters: { [filterName: string]: Filter } = filters.reduce((acc, f) => {
14
+ if (f.active) {
15
+ acc[f.name] = f;
67
16
  }
68
- } else {
69
- newValue = filter.value;
70
- if (!!newValue) {
71
- newValid = true;
17
+ return acc;
18
+ }, {} as { [filterName: string]: Filter });
19
+
20
+ const dispatch = createEventDispatcher<{
21
+ 'change': { filter: Filter }
22
+ }>()
23
+
24
+ type LabelMapper = {
25
+ [label: string]: { extended?: string; short: string };
26
+ };
27
+
28
+ let labelsMapper: LabelMapper = lang == 'en' ? {
29
+ equal: { extended: "equal to", short: "equal" },
30
+ like: { short: "includes" },
31
+ ilike: { short: "includes" },
32
+ contains: { short: "contains" },
33
+ greater: { short: "greater", extended: "greater than" },
34
+ lower: { short: "lower", extended: "lower than" },
35
+ between: { short: "between", extended: "is between" },
36
+ different: { short: "different", extended: "different from" },
37
+ } : {
38
+ equal: { extended: "uguale a", short: "uguale" },
39
+ like: { short: "include" },
40
+ ilike: { short: "include" },
41
+ contains: { short: "contiene" },
42
+ greater: { short: "maggiore", extended: "maggiore di" },
43
+ lower: { short: "minore", extended: "minore di" },
44
+ between: { short: "compreso", extended: "è compreso tra" },
45
+ different: { short: "diverso", extended: "diverso da" },
46
+ };
47
+
48
+ function selectFilter(filter: Filter) {
49
+ selectedFilter = filter === selectedFilter ? undefined : filter;
50
+ }
51
+
52
+ function handleKeyPress(event: any, filter: Filter) {
53
+ if (event.key === "Enter" || event.key === " ") {
54
+ selectFilter(filter);
55
+ }
56
+ }
57
+
58
+ function handleFilterChange() {
59
+ if(!!selectedFilter){
60
+ dispatch('change', { filter: tmpFilters[selectedFilter.name] })
61
+ filters = filters.map(f => {
62
+ if (f.name === selectedFilter?.name) {
63
+ return tmpFilters[selectedFilter.name]
64
+ }
65
+ return f
66
+ })
67
+ }
68
+ }
69
+
70
+ function isActiveFilter(filter: Filter) {
71
+ let newValue: any = {},
72
+ newValid: boolean = false
73
+ if(filter.type == 'select') {
74
+ newValue = filter.values
75
+ if(!!newValue && newValue.length > 0) {
76
+ newValid = true
77
+ }
78
+ } else if('mode' in filter && filter.mode == 'between') {
79
+ newValue.to = filter.to
80
+ newValue.from = filter.from
81
+ if(!!newValue.from || !!newValue.to) {
82
+ newValid = true
83
+ }
84
+ } else if (filter.type == 'custom') {
85
+ newValue = filter.value
86
+ if ((Array.isArray(newValue) && newValue.length > 0) || (!Array.isArray(newValue) && !!newValue)) {
87
+ newValid = true;
88
+ }
89
+ } else {
90
+ newValue = filter.value
91
+ if(!!newValue) {
92
+ newValid = true
93
+ }
72
94
  }
95
+
96
+ return newValid
97
+ }
98
+
99
+ function updateCustomFilterValues(filterName: string, newValue: any, newValid: boolean, mode?: NumberMode | StringMode | SelectMode | DateMode) {
100
+ let filter = filters.find(f => f.name === filterName)
101
+ if(!filter) throw new Error('cannot find filter with name ' + filterName)
102
+ if(filter.type != 'custom') throw new Error('filter is not custom')
103
+ filter.value = newValue
104
+ filter.active = newValid
105
+ updateMultiFilterValues(filterName, newValue, newValid, mode)
73
106
  }
74
- return newValid;
75
- }
76
- function updateCustomFilterValues(filterName, newValue, newValid, mode) {
77
- let filter = filters.find((f) => f.name === filterName);
78
- if (!filter)
79
- throw new Error("cannot find filter with name " + filterName);
80
- if (filter.type != "custom")
81
- throw new Error("filter is not custom");
82
- filter.value = newValue;
83
- filter.active = newValid;
84
- updateMultiFilterValues(filterName, newValue, newValid, mode);
85
- }
86
107
  </script>
87
108
 
88
109
  <div class="custom-filters-container" class:yscroll={mAndDown}>
@@ -1,30 +1,34 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { DateMode, Filter, NumberMode, SelectMode, StringMode } from "../../../utils/filters/filters";
3
- declare const __propDef: {
4
- props: {
5
- filters?: Filter[] | undefined;
6
- lang?: "it" | "en" | undefined;
7
- mAndDown?: boolean | undefined;
8
- updateMultiFilterValues: (filterName: string, newValue: any, newValid: boolean, mode?: NumberMode | StringMode | SelectMode | DateMode) => void;
2
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
9
12
  };
10
- events: {
11
- change: CustomEvent<{
12
- filter: Filter;
13
- }>;
14
- } & {
15
- [evt: string]: CustomEvent<any>;
16
- };
17
- slots: {
18
- custom: {
19
- filter: Filter | undefined;
20
- mAndDown: boolean;
21
- updateCustomFilterValues: (filterName: string, newValue: any, newValid: boolean, mode?: NumberMode | StringMode | SelectMode | DateMode) => void;
22
- };
23
- };
24
- };
25
- export type DynamicFiltersProps = typeof __propDef.props;
26
- export type DynamicFiltersEvents = typeof __propDef.events;
27
- export type DynamicFiltersSlots = typeof __propDef.slots;
28
- export default class DynamicFilters extends SvelteComponent<DynamicFiltersProps, DynamicFiltersEvents, DynamicFiltersSlots> {
13
+ z_$$bindings?: Bindings;
29
14
  }
30
- export {};
15
+ declare const DynamicFilters: $$__sveltets_2_IsomorphicComponent<{
16
+ filters?: Filter[];
17
+ lang?: "it" | "en";
18
+ mAndDown?: boolean;
19
+ updateMultiFilterValues: (filterName: string, newValue: any, newValid: boolean, mode?: NumberMode | StringMode | SelectMode | DateMode) => void;
20
+ }, {
21
+ change: CustomEvent<{
22
+ filter: Filter;
23
+ }>;
24
+ } & {
25
+ [evt: string]: CustomEvent<any>;
26
+ }, {
27
+ custom: {
28
+ filter: Filter | undefined;
29
+ mAndDown: boolean;
30
+ updateCustomFilterValues: (filterName: string, newValue: any, newValid: boolean, mode?: NumberMode | StringMode | SelectMode | DateMode) => void;
31
+ };
32
+ }, {}, string>;
33
+ type DynamicFilters = InstanceType<typeof DynamicFilters>;
34
+ export default DynamicFilters;
@@ -1,95 +1,124 @@
1
- <script>import Dropdown, {} from "../forms/Dropdown.svelte";
2
- import { GENERIC_MODES, SELECT_MODES, STRING_MODES } from "../../../utils/filters/filters";
3
- import SimpleTextField from "../../simple/forms/SimpleTextField.svelte";
4
- import DatePickerTextField from "../forms/DatePickerTextField.svelte";
5
- import Validator from "../../../utils/filters/validator";
6
- import Autocomplete from "../../simple/forms/Autocomplete.svelte";
7
- import Checkbox from "../../simple/forms/Checkbox.svelte";
8
- import Icon from "../../simple/media/Icon.svelte";
9
- import ToggleList from "../forms/ToggleList.svelte";
10
- import { createEventDispatcher } from "svelte";
11
- export let filter = void 0, lang = "en", betweenFromLabel = lang == "en" ? "From" : "Da", betweenToLabel = lang == "en" ? "To" : "A", labelsMapper, forceApplyValid = false, editFilterMode = "one-edit", tmpFilter = void 0, mobile = false;
12
- let advancedModeOptions, advancedModeSelectedOptions;
13
- function initTmpFilter() {
14
- tmpFilter = filter === void 0 ? void 0 : { ...filter };
15
- if (!!tmpFilter && ["string", "number", "date", "select"].includes(tmpFilter.type) && Object.keys(tmpFilter).includes("mode")) {
16
- if (tmpFilter.mode == "between" && tmpFilter.from !== void 0 && tmpFilter.to !== void 0 || tmpFilter.value !== void 0 || tmpFilter.type == "select" && tmpFilter.values !== void 0 && tmpFilter.values.length > 0) {
17
- advancedModeSelectedOptions = [{
18
- //@ts-ignore
19
- value: tmpFilter.mode,
20
- label: labelsMapper[tmpFilter.mode].short || tmpFilter.mode
21
- }];
1
+ <script lang="ts">
2
+ import type { Filter, NumberMode, SelectMode, StringMode } from "../../../utils/filters/filters";
3
+ import Dropdown, { type Item } from "../forms/Dropdown.svelte";
4
+ import { GENERIC_MODES, SELECT_MODES, STRING_MODES } from '../../../utils/filters/filters';
5
+ import type { DateMode } from "../../../utils/filters/filters";
6
+ import SimpleTextField from "../../simple/forms/SimpleTextField.svelte";
7
+ import DatePickerTextField from "../forms/DatePickerTextField.svelte";
8
+ import Validator from "../../../utils/filters/validator";
9
+ import Autocomplete from "../../simple/forms/Autocomplete.svelte";
10
+ import Checkbox from "../../simple/forms/Checkbox.svelte";
11
+ import type { LabelMapper } from "./Filters.svelte";
12
+ import Icon from "../../simple/media/Icon.svelte";
13
+ import ToggleList from "../forms/ToggleList.svelte";
14
+ import { createEventDispatcher } from "svelte";
15
+
16
+ export let filter: Filter | undefined = undefined,
17
+ lang: 'en' | 'it' = 'en',
18
+ betweenFromLabel: string = lang == 'en' ? "From" : "Da",
19
+ betweenToLabel: string = lang == 'en' ? "To" : "A",
20
+ labelsMapper: LabelMapper,
21
+ forceApplyValid: boolean = false,
22
+ editFilterMode: 'one-edit' | 'multi-edit' = 'one-edit',
23
+ tmpFilter: Filter | undefined = undefined,
24
+ mobile: boolean = false;
25
+
26
+ let advancedModeOptions: Item[],
27
+ advancedModeSelectedOptions: Item[] | undefined
28
+
29
+ function initTmpFilter() {
30
+ tmpFilter = filter === undefined ? undefined : {...filter}
31
+ if(!!tmpFilter && ['string', 'number', 'date', 'select'].includes(tmpFilter.type) && Object.keys(tmpFilter).includes('mode')) {
32
+ //@ts-ignore
33
+ if((tmpFilter.mode == 'between' && tmpFilter.from !== undefined && tmpFilter.to !== undefined) || tmpFilter.value !== undefined || (tmpFilter.type == 'select' && tmpFilter.values !== undefined && tmpFilter.values.length > 0)) {
34
+ advancedModeSelectedOptions = [{
35
+ //@ts-ignore
36
+ value: tmpFilter.mode, label: labelsMapper[tmpFilter.mode].short || tmpFilter.mode
37
+ }]
38
+ }
22
39
  }
23
40
  }
24
- }
25
- function closeDropDown() {
26
- dropdownOpened = false;
27
- }
28
- $:
29
- if (!!filter) {
30
- initTmpFilter();
31
- closeDropDown();
41
+
42
+
43
+ function closeDropDown() {
44
+ dropdownOpened = false
32
45
  }
33
- $:
34
- if (!!tmpFilter) {
35
- let modes;
36
- if (tmpFilter.type == "string") {
37
- modes = STRING_MODES;
38
- } else if (tmpFilter.type == "date") {
39
- modes = GENERIC_MODES;
40
- } else if (tmpFilter.type == "number") {
41
- modes = GENERIC_MODES;
42
- } else if (tmpFilter.type == "select") {
43
- modes = SELECT_MODES;
44
- } else if (tmpFilter.type == "bool") {
45
- modes = void 0;
46
+
47
+ $: if(!!filter) {
48
+ initTmpFilter()
49
+ closeDropDown()
50
+ }
51
+
52
+ $: if(!!tmpFilter) {
53
+ let modes
54
+ if(tmpFilter.type == 'string') {
55
+ modes = STRING_MODES
56
+ } else if(tmpFilter.type == 'date') {
57
+ modes = GENERIC_MODES
58
+ } else if(tmpFilter.type == 'number') {
59
+ modes = GENERIC_MODES
60
+ } else if(tmpFilter.type == 'select') {
61
+ modes = SELECT_MODES
62
+ } else if(tmpFilter.type == 'bool') {
63
+ modes = undefined
46
64
  }
47
- if (!!modes) {
48
- advancedModeOptions = modes.map((mode) => {
65
+
66
+ if(!!modes) {
67
+ advancedModeOptions = modes.map(mode => {
49
68
  return {
50
69
  value: mode,
51
70
  label: labelsMapper[mode].short || mode
52
- };
53
- });
71
+ }
72
+ })
54
73
  }
55
74
  }
56
- $:
57
- if (!tmpFilter?.advanced) {
58
- advancedModeSelectedOptions = void 0;
75
+
76
+ $: if(!tmpFilter?.advanced) {
77
+ advancedModeSelectedOptions = undefined
59
78
  }
60
- let dropdownOpened = false, calendarOpened = false, calendarOpened2 = false;
61
- function handleAdvancedModeSelection() {
62
- if (!!advancedModeSelectedOptions && advancedModeSelectedOptions.length > 0 && !!tmpFilter) {
63
- if (tmpFilter.type == "date")
64
- tmpFilter.mode = advancedModeSelectedOptions[0].value;
65
- else if (tmpFilter.type == "number")
66
- tmpFilter.mode = advancedModeSelectedOptions[0].value;
67
- else if (tmpFilter.type == "string")
68
- tmpFilter.mode = advancedModeSelectedOptions[0].value;
69
- else if (tmpFilter.type == "select")
70
- tmpFilter.mode = advancedModeSelectedOptions[0].value;
79
+
80
+ let dropdownOpened: boolean = false,
81
+ calendarOpened: boolean = false,
82
+ calendarOpened2: boolean = false
83
+
84
+ // TODO I don't like that there is a singlo dropdow to handle all filter advance mode.
85
+ // In some case would be necessary to handle more than one selection and this code
86
+ // could become non sense
87
+ function handleAdvancedModeSelection() {
88
+ if(!!advancedModeSelectedOptions && advancedModeSelectedOptions.length > 0 && !!tmpFilter) {
89
+ if(tmpFilter.type == 'date') tmpFilter.mode = advancedModeSelectedOptions[0].value as DateMode
90
+ else if(tmpFilter.type == 'number') tmpFilter.mode = advancedModeSelectedOptions[0].value as NumberMode
91
+ else if(tmpFilter.type == 'string') tmpFilter.mode = advancedModeSelectedOptions[0].value as StringMode
92
+ else if(tmpFilter.type == 'select') tmpFilter.mode = advancedModeSelectedOptions[0].value as SelectMode
93
+ }
94
+
95
+ dropdownOpened = false;
96
+ handleChangeValue()
71
97
  }
72
- dropdownOpened = false;
73
- handleChangeValue();
74
- }
75
- $:
76
- applyFilterDisabled = !Validator.isValid(tmpFilter) && !forceApplyValid;
77
- $:
78
- if (!!tmpFilter && tmpFilter.type == "bool") {
79
- if (tmpFilter.value === void 0) {
80
- tmpFilter.value = false;
98
+
99
+ $: applyFilterDisabled = !Validator.isValid(tmpFilter) && !forceApplyValid
100
+
101
+ $: if(!!tmpFilter && tmpFilter.type == 'bool') {
102
+ if(tmpFilter.value === undefined) {
103
+ tmpFilter.value = false
81
104
  }
82
105
  }
83
- $:
84
- if (!!tmpFilter && tmpFilter.type == "select") {
85
- if (tmpFilter.values === void 0) {
86
- tmpFilter.values = [];
106
+
107
+ $: if(!!tmpFilter && tmpFilter.type == 'select') {
108
+ if(tmpFilter.values === undefined) {
109
+ tmpFilter.values = []
87
110
  }
88
111
  }
89
- const dispatch = createEventDispatcher();
90
- function handleChangeValue() {
91
- dispatch("change", tmpFilter);
92
- }
112
+
113
+ const dispatch = createEventDispatcher<{
114
+ change: Filter | undefined
115
+ }>()
116
+
117
+ function handleChangeValue() {
118
+ dispatch('change', tmpFilter)
119
+ }
120
+
121
+
93
122
  </script>
94
123
 
95
124
 
@@ -1,38 +1,42 @@
1
- import { SvelteComponent } from "svelte";
2
1
  import type { Filter } from "../../../utils/filters/filters";
3
2
  import type { LabelMapper } from "./Filters.svelte";
4
- declare const __propDef: {
5
- props: {
6
- filter?: Filter | undefined;
7
- lang?: "it" | "en" | undefined;
8
- betweenFromLabel?: string | undefined;
9
- betweenToLabel?: string | undefined;
10
- labelsMapper: LabelMapper;
11
- forceApplyValid?: boolean | undefined;
12
- editFilterMode?: "one-edit" | "multi-edit" | undefined;
13
- tmpFilter?: Filter | undefined;
14
- mobile?: boolean | undefined;
3
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
+ $$bindings?: Bindings;
6
+ } & Exports;
7
+ (internal: unknown, props: Props & {
8
+ $$events?: Events;
9
+ $$slots?: Slots;
10
+ }): Exports & {
11
+ $set?: any;
12
+ $on?: any;
15
13
  };
16
- events: {
17
- click: MouseEvent;
18
- keypress: KeyboardEvent;
19
- change: CustomEvent<Filter | undefined>;
20
- } & {
21
- [evt: string]: CustomEvent<any>;
14
+ z_$$bindings?: Bindings;
15
+ }
16
+ declare const FilterEditor: $$__sveltets_2_IsomorphicComponent<{
17
+ filter?: Filter | undefined;
18
+ lang?: "en" | "it";
19
+ betweenFromLabel?: string;
20
+ betweenToLabel?: string;
21
+ labelsMapper: LabelMapper;
22
+ forceApplyValid?: boolean;
23
+ editFilterMode?: "one-edit" | "multi-edit";
24
+ tmpFilter?: Filter | undefined;
25
+ mobile?: boolean;
26
+ }, {
27
+ click: MouseEvent;
28
+ keypress: KeyboardEvent;
29
+ change: CustomEvent<Filter | undefined>;
30
+ } & {
31
+ [evt: string]: CustomEvent<any>;
32
+ }, {
33
+ custom: {
34
+ filter: Filter | undefined;
22
35
  };
23
- slots: {
24
- custom: {
25
- filter: Filter | undefined;
26
- };
27
- 'filter-actions': {
28
- applyFilterDisabled: boolean;
29
- filter: Filter | undefined;
30
- };
36
+ 'filter-actions': {
37
+ applyFilterDisabled: boolean;
38
+ filter: Filter | undefined;
31
39
  };
32
- };
33
- export type FilterEditorProps = typeof __propDef.props;
34
- export type FilterEditorEvents = typeof __propDef.events;
35
- export type FilterEditorSlots = typeof __propDef.slots;
36
- export default class FilterEditor extends SvelteComponent<FilterEditorProps, FilterEditorEvents, FilterEditorSlots> {
37
- }
38
- export {};
40
+ }, {}, string>;
41
+ type FilterEditor = InstanceType<typeof FilterEditor>;
42
+ export default FilterEditor;