@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
@@ -34,32 +34,39 @@ export declare function getPeriodLabel<T extends string>(settings: TimespanSetti
34
34
  value: string | T;
35
35
  label: string;
36
36
  }[]): string;
37
- declare class __sveltets_Render<T extends string = string> {
38
- props(): {
39
- timespanSettings?: TimespanSettings<T> | undefined;
37
+ declare function $$render<T extends string = string>(): {
38
+ props: {
39
+ timespanSettings?: TimespanSettings<T>;
40
40
  quickSelectOptions?: {
41
41
  value: T;
42
42
  label: string;
43
- }[] | undefined;
43
+ }[];
44
44
  valid?: boolean;
45
45
  mode?: "default" | "datepicker";
46
46
  lang?: "it" | "en";
47
47
  locale?: "it" | "en";
48
48
  showTimeRangeLabel?: boolean;
49
49
  isSelectionMode?: boolean;
50
- onchange?: ((event: {
51
- timespanSettings?: TimespanSettings<T> | undefined;
52
- }) => void) | undefined;
53
- quickRangeConvertor?: ((value: string) => {
50
+ onchange?: (event: {
51
+ timespanSettings?: TimespanSettings<T>;
52
+ }) => void;
53
+ quickRangeConvertor?: (value: string) => {
54
54
  from?: Date;
55
55
  to: Date;
56
- } | undefined) | undefined;
57
- setTimespanLabel?: ((params: {
56
+ } | undefined;
57
+ setTimespanLabel?: (params: {
58
58
  timespanSettings: TimespanSettings<T> | undefined;
59
- }) => string) | undefined;
59
+ }) => string;
60
60
  };
61
- events(): {};
62
- slots(): {};
61
+ exports: {};
62
+ bindings: "timespanSettings" | "valid" | "isSelectionMode";
63
+ slots: {};
64
+ events: {};
65
+ };
66
+ declare class __sveltets_Render<T extends string = string> {
67
+ props(): ReturnType<typeof $$render<T>>['props'];
68
+ events(): ReturnType<typeof $$render<T>>['events'];
69
+ slots(): ReturnType<typeof $$render<T>>['slots'];
63
70
  bindings(): "timespanSettings" | "valid" | "isSelectionMode";
64
71
  exports(): {};
65
72
  }
@@ -1,46 +1,80 @@
1
- <script module lang="ts">export {};
1
+ <script module lang="ts">
2
+ export type Item<Data = any> = {
3
+ value: string | number;
4
+ label?: string | number;
5
+ icon?: string;
6
+ data?: Data;
7
+ };
2
8
  </script>
3
9
 
4
- <script lang="ts" generics="Data">import '../../../css/main.css';
5
- import Chip from "../../simple/navigation/Chip.svelte";
6
- let { values = $bindable(), items, multiple = true, disabled = false, onchange, } = $props();
7
- function select(item) {
8
- const alreadyPresent = values?.findIndex((i) => i.value === item.value) !== -1;
10
+ <script lang="ts" generics="Data">
11
+ import '../../../css/main.css'
12
+ import Chip from "../../simple/navigation/Chip.svelte";
13
+
14
+ type ItemData = Item<Data>
15
+ interface Props {
16
+ values?: ItemData[];
17
+ items: ItemData[];
18
+ multiple?: boolean;
19
+ disabled?: boolean;
20
+ onchange?: (event: {
21
+ detail: {
22
+ unselect: ItemData | undefined;
23
+ select: ItemData | undefined;
24
+ selection: ItemData[];
25
+ }
26
+ }) => void
27
+ }
28
+
29
+ let {
30
+ values = $bindable(),
31
+ items,
32
+ multiple = true,
33
+ disabled = false,
34
+ onchange,
35
+ }: Props = $props();
36
+
37
+ function select(item: ItemData) {
38
+ const alreadyPresent =
39
+ values?.findIndex((i) => i.value === item.value) !== -1;
40
+
9
41
  if (!alreadyPresent) {
10
- if (multiple)
11
- values = [...(values || []), item];
12
- else
13
- values = [item];
14
- if (onchange) {
15
- onchange({
16
- detail: {
17
- unselect: undefined,
18
- select: item,
19
- selection: values,
20
- }
21
- });
22
- }
42
+ if (multiple) values = [...(values || []), item];
43
+ else values = [item];
44
+
45
+ if(onchange) {
46
+ onchange({
47
+ detail: {
48
+ unselect: undefined,
49
+ select: item,
50
+ selection: values,
51
+ }
52
+ })
53
+ }
23
54
  }
24
- }
25
- function unselect(item) {
55
+ }
56
+
57
+ function unselect(item: ItemData) {
26
58
  values = values?.filter((i) => i.value != item.value);
27
- if (onchange) {
28
- onchange({
29
- detail: {
30
- unselect: item,
31
- select: undefined,
32
- selection: values || [],
33
- }
34
- });
59
+
60
+ if(onchange) {
61
+ onchange({
62
+ detail: {
63
+ unselect: item,
64
+ select: undefined,
65
+ selection: values || [],
66
+ }
67
+ })
35
68
  }
36
- }
37
- function toggle(item) {
38
- const alreadyPresent = values?.findIndex((i) => i.value === item.value) !== -1;
39
- if (alreadyPresent)
40
- unselect(item);
41
- else
42
- select(item);
43
- }
69
+ }
70
+
71
+ function toggle(item: ItemData) {
72
+ const alreadyPresent =
73
+ values?.findIndex((i) => i.value === item.value) !== -1;
74
+
75
+ if (alreadyPresent) unselect(item);
76
+ else select(item);
77
+ }
44
78
  </script>
45
79
 
46
80
  <svelte:window />
@@ -5,22 +5,29 @@ export type Item<Data = any> = {
5
5
  data?: Data;
6
6
  };
7
7
  import '../../../css/main.css';
8
- declare class __sveltets_Render<Data> {
9
- props(): {
10
- values?: Item<Data>[] | undefined;
8
+ declare function $$render<Data>(): {
9
+ props: {
10
+ values?: Item<Data>[];
11
11
  items: Item<Data>[];
12
12
  multiple?: boolean;
13
13
  disabled?: boolean;
14
- onchange?: ((event: {
14
+ onchange?: (event: {
15
15
  detail: {
16
16
  unselect: Item<Data> | undefined;
17
17
  select: Item<Data> | undefined;
18
18
  selection: Item<Data>[];
19
19
  };
20
- }) => void) | undefined;
20
+ }) => void;
21
21
  };
22
- events(): {};
23
- slots(): {};
22
+ exports: {};
23
+ bindings: "values";
24
+ slots: {};
25
+ events: {};
26
+ };
27
+ declare class __sveltets_Render<Data> {
28
+ props(): ReturnType<typeof $$render<Data>>['props'];
29
+ events(): ReturnType<typeof $$render<Data>>['events'];
30
+ slots(): ReturnType<typeof $$render<Data>>['slots'];
24
31
  bindings(): "values";
25
32
  exports(): {};
26
33
  }
@@ -1,95 +1,167 @@
1
- <script lang="ts">import IMask, {} from 'imask';
2
- import SimpleTextField from "../../simple/forms/SimpleTextField.svelte";
3
- import Menu from "../../simple/common/Menu.svelte";
4
- import Icon from "../../simple/media/Icon.svelte";
5
- import { onMount, tick } from 'svelte';
6
- import { DateTime } from 'luxon';
7
- import MediaQuery from '../../simple/common/MediaQuery.svelte';
8
- import Dialog from '../../simple/dialogs/Dialog.svelte';
9
- import YearSelector from '../../simple/dates/YearSelector.svelte';
10
- let { menuOpened = $bindable(false), openingId = $bindable('year-picker-text-field'), selectedYear = $bindable(), placeholder, mobileDialog = true, maxYearInRange = 2100, minYearInRange = 1900, disabled = false, class: clazz = {}, oninput, onyearClick, appendInnerSnippet, appendSnippet, prependInnerSnippet: prependInnerInternalSnippet, prependSnippet, activatorSnippet, } = $props();
11
- let activator = $state(), refreshPosition = $state(false), menuElement = $state(), inputElement = $state(), pattern = "yyyy", mask = $state({
12
- value: undefined
13
- }), maskFactoryArgs = {
14
- mask: Date,
15
- pattern: pattern,
16
- format: function (date) {
17
- return DateTime.fromJSDate(date).toFormat(pattern);
18
- },
19
- parse: function (str) {
20
- return DateTime.fromFormat(str, pattern).toJSDate();
21
- },
22
- blocks: {
1
+ <script lang="ts">
2
+ import IMask, { type InputMask } from 'imask';
3
+ import SimpleTextField from "../../simple/forms/SimpleTextField.svelte";
4
+ import Menu from "../../simple/common/Menu.svelte";
5
+ import Icon from "../../simple/media/Icon.svelte";
6
+ import { onMount, tick, type ComponentProps, type Snippet } from 'svelte';
7
+ import { DateTime } from 'luxon'
8
+ import MediaQuery from '../../simple/common/MediaQuery.svelte';
9
+ import Dialog from '../../simple/dialogs/Dialog.svelte';
10
+ import YearSelector from '../../simple/dates/YearSelector.svelte';
11
+
12
+ interface Props {
13
+ menuOpened?: boolean;
14
+ openingId?: string;
15
+ selectedYear?: number;
16
+ placeholder?: string;
17
+ mobileDialog?: boolean;
18
+ maxYearInRange?: number;
19
+ minYearInRange?: number;
20
+ disabled?: boolean;
21
+ class?: {
22
+ activator?: string,
23
+ textfield?: ComponentProps<typeof SimpleTextField>['class']
24
+ }
25
+ onyearClick?: (event: {
26
+ detail: {
27
+ year: number
28
+ }
29
+ }) => void
30
+ oninput?: (event: {
31
+ detail: {
32
+ year: number | undefined
33
+ }
34
+ }) => void
35
+ appendSnippet?: ComponentProps<typeof SimpleTextField>['appendSnippet']
36
+ appendInnerSnippet?: ComponentProps<typeof SimpleTextField>['appendInnerSnippet']
37
+ prependSnippet?: ComponentProps<typeof SimpleTextField>['prependSnippet']
38
+ prependInnerSnippet?: ComponentProps<typeof SimpleTextField>['prependInnerSnippet']
39
+ activatorSnippet?: Snippet<[{
40
+ mask: typeof mask,
41
+ handleTextFieldFocus: typeof handleTextFieldFocus,
42
+ handleInputChange: typeof handleInputChange,
43
+ inputElement: typeof inputElement,
44
+ placeholder: typeof placeholder,
45
+ disabled: typeof disabled,
46
+ }]>
47
+ }
48
+
49
+ let {
50
+ menuOpened = $bindable(false),
51
+ openingId = $bindable('year-picker-text-field'),
52
+ selectedYear = $bindable(),
53
+ placeholder,
54
+ mobileDialog = true,
55
+ maxYearInRange = 2100,
56
+ minYearInRange = 1900,
57
+ disabled = false,
58
+ class: clazz = {},
59
+ oninput,
60
+ onyearClick,
61
+ appendInnerSnippet,
62
+ appendSnippet,
63
+ prependInnerSnippet: prependInnerInternalSnippet,
64
+ prependSnippet,
65
+ activatorSnippet,
66
+ }: Props = $props();
67
+
68
+ let activator: HTMLElement | undefined = $state(),
69
+ refreshPosition = $state(false),
70
+ menuElement: HTMLElement | undefined = $state(),
71
+ inputElement: HTMLElement | undefined = $state(),
72
+ pattern: string = "yyyy",
73
+ mask: InputMask<typeof maskFactoryArgs> | { value: string | undefined } = $state({
74
+ value: undefined
75
+ }),
76
+ maskFactoryArgs = {
77
+ mask: Date,
78
+ pattern: pattern,
79
+ format: function (date: any): string {
80
+ return DateTime.fromJSDate(date).toFormat(pattern)
81
+ },
82
+ parse: function (str: string): Date {
83
+ return DateTime.fromFormat(str, pattern).toJSDate()
84
+ },
85
+ blocks: {
23
86
  yyyy: {
24
- mask: IMask.MaskedRange,
25
- from: minYearInRange,
26
- to: maxYearInRange
87
+ mask: IMask.MaskedRange,
88
+ from: minYearInRange,
89
+ to: maxYearInRange
27
90
  }
91
+ }
28
92
  }
29
- };
30
- function handleTextFieldFocus(mobile) {
31
- if (!mobile || !mobileDialog) {
32
- menuOpened = true;
93
+
94
+ function handleTextFieldFocus(mobile: boolean) {
95
+ if(!mobile || !mobileDialog) {
96
+ menuOpened = true
33
97
  }
34
- }
35
- onMount(() => {
36
- if (inputElement) {
37
- mask = IMask(inputElement, maskFactoryArgs);
98
+ }
99
+
100
+ onMount(() => {
101
+ if(inputElement){
102
+ mask = IMask(
103
+ inputElement, maskFactoryArgs
104
+ )
38
105
  }
39
- if (selectedYear !== undefined && selectedYear !== null) {
40
- mask.value = selectedYear.toString();
106
+
107
+ if(selectedYear !== undefined && selectedYear !== null) {
108
+ mask.value = selectedYear.toString()
41
109
  }
42
- });
43
- function handleInputChange(event) {
110
+ })
111
+
112
+ function handleInputChange(event: any) {
44
113
  setTimeout(() => {
45
- const typedValue = mask.value;
46
- if (typedValue !== undefined && typedValue !== null) {
47
- // find year
48
- const yearIndex = pattern.indexOf('yyyy');
49
- const year = typedValue.substring(yearIndex, yearIndex + 4);
50
- if (year.length == 4) {
51
- selectedYear = Number(year);
52
- }
53
- else if (year.length == 0) {
54
- selectedYear = undefined;
55
- }
56
- if (oninput) {
57
- oninput({
58
- detail: {
59
- year: selectedYear
60
- }
61
- });
62
- }
114
+ const typedValue = mask.value
115
+
116
+ if(typedValue !== undefined && typedValue !== null) {
117
+ // find year
118
+ const yearIndex = pattern.indexOf('yyyy')
119
+ const year = typedValue.substring(yearIndex, yearIndex + 4)
120
+ if(year.length == 4) {
121
+ selectedYear = Number(year)
122
+ } else if(year.length == 0) {
123
+ selectedYear = undefined
63
124
  }
64
- }, 30);
65
- }
66
- function handleYearClick(event) {
67
- if (onyearClick) {
68
- onyearClick({
125
+
126
+ if(oninput) {
127
+ oninput({
69
128
  detail: {
70
- year: event.detail.year
129
+ year: selectedYear
71
130
  }
72
- });
73
- }
74
- }
75
- function handleYearChange(event) {
76
- if (!!selectedYear) {
77
- mask.value = selectedYear.toString();
131
+ })
132
+ }
133
+ }
134
+ }, 30);
135
+ }
136
+
137
+ function handleYearClick(event: Parameters<NonNullable<ComponentProps<typeof YearSelector>['onclick']>>[0]) {
138
+ if(onyearClick) {
139
+ onyearClick({
140
+ detail: {
141
+ year: event.detail.year
142
+ }
143
+ })
78
144
  }
79
- else {
80
- mask.value = '';
145
+ }
146
+
147
+ function handleYearChange(event: Parameters<NonNullable<ComponentProps<typeof YearSelector>['onchange']>>[0]) {
148
+ if(!!selectedYear) {
149
+ mask.value = selectedYear.toString()
150
+ } else {
151
+ mask.value = ''
81
152
  }
82
- }
83
- $effect(() => {
84
- if (!!selectedYear) {
85
- setTimeout(async () => {
86
- if (!!selectedYear) {
87
- mask.value = selectedYear.toString();
88
- }
89
- await tick();
90
- }, 30);
153
+ }
154
+
155
+ $effect(() => {
156
+ if(!!selectedYear) {
157
+ setTimeout(async () => {
158
+ if(!!selectedYear) {
159
+ mask.value = selectedYear.toString()
160
+ }
161
+ await tick()
162
+ }, 30);
91
163
  }
92
- });
164
+ })
93
165
  </script>
94
166
 
95
167
  <MediaQuery>
@@ -154,9 +226,9 @@ $effect(() => {
154
226
  {:else}
155
227
  <Menu
156
228
  {activator}
157
- _width={"300px"}
158
- _boxShadow={"rgb(var(--global-color-background-300), .5) 0px 2px 4px"}
159
- _borderRadius={"5px"}
229
+ _width="300px"
230
+ _boxShadow="rgb(var(--global-color-background-300), .5) 0px 2px 4px"
231
+ _borderRadius="5px"
160
232
  bind:open={menuOpened}
161
233
  anchor="bottom-center"
162
234
  closeOnClickOutside