@likable-hair/svelte 3.3.20 → 3.3.21

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 (197) hide show
  1. package/dist/components/composed/buttons/ActivableButton.svelte +2 -6
  2. package/dist/components/composed/buttons/ActivableButton.svelte.d.ts +32 -36
  3. package/dist/components/composed/common/MenuOrDrawer.svelte +5 -21
  4. package/dist/components/composed/common/MenuOrDrawer.svelte.d.ts +36 -50
  5. package/dist/components/composed/common/MenuOrDrawerOptions.svelte +13 -29
  6. package/dist/components/composed/common/MenuOrDrawerOptions.svelte.d.ts +30 -34
  7. package/dist/components/composed/common/QuickActions.svelte +20 -52
  8. package/dist/components/composed/common/QuickActions.svelte.d.ts +20 -24
  9. package/dist/components/composed/common/ToolTip.svelte +22 -31
  10. package/dist/components/composed/common/ToolTip.svelte.d.ts +43 -32
  11. package/dist/components/composed/forms/AsyncAutocomplete.svelte +23 -44
  12. package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +39 -44
  13. package/dist/components/composed/forms/AvatarDropdown.svelte +27 -57
  14. package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +41 -45
  15. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +17 -35
  16. package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte.d.ts +37 -41
  17. package/dist/components/composed/forms/CountriesAutocomplete.svelte +7 -16
  18. package/dist/components/composed/forms/CountriesAutocomplete.svelte.d.ts +60 -31
  19. package/dist/components/composed/forms/DatePickerTextField.svelte +114 -166
  20. package/dist/components/composed/forms/DatePickerTextField.svelte.d.ts +63 -67
  21. package/dist/components/composed/forms/Dropdown.svelte +21 -51
  22. package/dist/components/composed/forms/Dropdown.svelte.d.ts +43 -48
  23. package/dist/components/composed/forms/IconsDropdown.svelte +33 -61
  24. package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +26 -30
  25. package/dist/components/composed/forms/LabelAndSelect.svelte +7 -32
  26. package/dist/components/composed/forms/LabelAndSelect.svelte.d.ts +31 -35
  27. package/dist/components/composed/forms/LabelAndTextField.svelte +5 -30
  28. package/dist/components/composed/forms/LabelAndTextField.svelte.d.ts +42 -46
  29. package/dist/components/composed/forms/ToggleList.svelte +33 -59
  30. package/dist/components/composed/forms/ToggleList.svelte.d.ts +17 -21
  31. package/dist/components/composed/forms/YearPickerTextField.svelte +74 -114
  32. package/dist/components/composed/forms/YearPickerTextField.svelte.d.ts +49 -53
  33. package/dist/components/composed/list/DynamicTable.svelte +707 -1102
  34. package/dist/components/composed/list/DynamicTable.svelte.d.ts +365 -369
  35. package/dist/components/composed/list/PaginatedTable.svelte +76 -139
  36. package/dist/components/composed/list/PaginatedTable.svelte.d.ts +108 -108
  37. package/dist/components/composed/progress/HorizontalStackedProgress.svelte +30 -58
  38. package/dist/components/composed/progress/HorizontalStackedProgress.svelte.d.ts +21 -25
  39. package/dist/components/composed/search/DynamicFilters.svelte +82 -103
  40. package/dist/components/composed/search/DynamicFilters.svelte.d.ts +27 -31
  41. package/dist/components/composed/search/FilterEditor.svelte +77 -106
  42. package/dist/components/composed/search/FilterEditor.svelte.d.ts +33 -37
  43. package/dist/components/composed/search/Filters.svelte +292 -361
  44. package/dist/components/composed/search/Filters.svelte.d.ts +51 -55
  45. package/dist/components/composed/search/GlobalSearchTextField.svelte +41 -79
  46. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +39 -43
  47. package/dist/components/composed/search/MobileFilterEditor.svelte +93 -135
  48. package/dist/components/composed/search/MobileFilterEditor.svelte.d.ts +35 -39
  49. package/dist/components/composed/search/SearchBar.svelte +5 -28
  50. package/dist/components/composed/search/SearchBar.svelte.d.ts +30 -34
  51. package/dist/components/composed/search/SearchResults.svelte +7 -42
  52. package/dist/components/composed/search/SearchResults.svelte.d.ts +36 -40
  53. package/dist/components/composed/shop/ProductCard.svelte +4 -18
  54. package/dist/components/composed/shop/ProductCard.svelte.d.ts +28 -32
  55. package/dist/components/composed/shop/ProductsGrid.svelte +2 -22
  56. package/dist/components/composed/shop/ProductsGrid.svelte.d.ts +40 -44
  57. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +38 -77
  58. package/dist/components/layouts/CollapsibleSideBarLayout.svelte.d.ts +69 -109
  59. package/dist/components/layouts/StableDividedSideBarLayout.svelte +17 -47
  60. package/dist/components/layouts/StableDividedSideBarLayout.svelte.d.ts +32 -50
  61. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +30 -53
  62. package/dist/components/layouts/UnstableDividedSideBarLayout.svelte.d.ts +63 -103
  63. package/dist/components/simple/buttons/Button.svelte +32 -78
  64. package/dist/components/simple/buttons/Button.svelte.d.ts +35 -47
  65. package/dist/components/simple/buttons/LinkButton.svelte +22 -54
  66. package/dist/components/simple/buttons/LinkButton.svelte.d.ts +33 -50
  67. package/dist/components/simple/charts/GanymedeBarChart.svelte +134 -172
  68. package/dist/components/simple/charts/GanymedeBarChart.svelte.d.ts +46 -50
  69. package/dist/components/simple/charts/GanymedeLineChart.svelte +115 -157
  70. package/dist/components/simple/charts/GanymedeLineChart.svelte.d.ts +47 -51
  71. package/dist/components/simple/charts/GanymedePieChart.svelte +39 -62
  72. package/dist/components/simple/charts/GanymedePieChart.svelte.d.ts +33 -37
  73. package/dist/components/simple/common/Card.svelte +1 -20
  74. package/dist/components/simple/common/Card.svelte.d.ts +38 -51
  75. package/dist/components/simple/common/CollapsibleDivider.svelte +11 -23
  76. package/dist/components/simple/common/CollapsibleDivider.svelte.d.ts +25 -29
  77. package/dist/components/simple/common/Divider.svelte +2 -8
  78. package/dist/components/simple/common/Divider.svelte.d.ts +19 -23
  79. package/dist/components/simple/common/Gesture.svelte +46 -64
  80. package/dist/components/simple/common/Gesture.svelte.d.ts +17 -21
  81. package/dist/components/simple/common/InfiniteScroll.svelte +29 -52
  82. package/dist/components/simple/common/InfiniteScroll.svelte.d.ts +20 -24
  83. package/dist/components/simple/common/IntersectionObserver.svelte +32 -45
  84. package/dist/components/simple/common/IntersectionObserver.svelte.d.ts +21 -34
  85. package/dist/components/simple/common/MediaQuery.svelte +21 -30
  86. package/dist/components/simple/common/MediaQuery.svelte.d.ts +30 -34
  87. package/dist/components/simple/common/Menu.svelte +201 -290
  88. package/dist/components/simple/common/Menu.svelte.d.ts +40 -51
  89. package/dist/components/simple/common/Playground.svelte +17 -18
  90. package/dist/components/simple/common/Playground.svelte.d.ts +15 -19
  91. package/dist/components/simple/common/VerticalDraggableList.svelte +16 -35
  92. package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +29 -33
  93. package/dist/components/simple/dashboards/DashboardGridShaper.svelte +26 -32
  94. package/dist/components/simple/dashboards/DashboardGridShaper.svelte.d.ts +12 -16
  95. package/dist/components/simple/dates/Calendar.svelte +28 -52
  96. package/dist/components/simple/dates/Calendar.svelte.d.ts +41 -45
  97. package/dist/components/simple/dates/DatePicker.svelte +60 -90
  98. package/dist/components/simple/dates/DatePicker.svelte.d.ts +40 -44
  99. package/dist/components/simple/dates/MonthSelector.svelte +15 -37
  100. package/dist/components/simple/dates/MonthSelector.svelte.d.ts +31 -35
  101. package/dist/components/simple/dates/TimePicker.svelte +31 -45
  102. package/dist/components/simple/dates/TimePicker.svelte.d.ts +20 -24
  103. package/dist/components/simple/dates/TimePickerTextField.svelte +35 -56
  104. package/dist/components/simple/dates/TimePickerTextField.svelte.d.ts +24 -28
  105. package/dist/components/simple/dates/YearSelector.svelte +29 -54
  106. package/dist/components/simple/dates/YearSelector.svelte.d.ts +31 -35
  107. package/dist/components/simple/dialogs/Dialog.svelte +62 -92
  108. package/dist/components/simple/dialogs/Dialog.svelte.d.ts +28 -42
  109. package/dist/components/simple/forms/Autocomplete.svelte +142 -201
  110. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +79 -83
  111. package/dist/components/simple/forms/Checkbox.svelte +24 -40
  112. package/dist/components/simple/forms/Checkbox.svelte.d.ts +21 -25
  113. package/dist/components/simple/forms/FileInput.svelte +48 -88
  114. package/dist/components/simple/forms/FileInput.svelte.d.ts +33 -37
  115. package/dist/components/simple/forms/FileInputList.svelte +34 -52
  116. package/dist/components/simple/forms/FileInputList.svelte.d.ts +39 -43
  117. package/dist/components/simple/forms/RadioButton.svelte +3 -11
  118. package/dist/components/simple/forms/RadioButton.svelte.d.ts +27 -31
  119. package/dist/components/simple/forms/Select.svelte +3 -16
  120. package/dist/components/simple/forms/Select.svelte.d.ts +20 -24
  121. package/dist/components/simple/forms/SimpleTextField.svelte +6 -53
  122. package/dist/components/simple/forms/SimpleTextField.svelte.d.ts +60 -64
  123. package/dist/components/simple/forms/Switch.svelte +16 -30
  124. package/dist/components/simple/forms/Switch.svelte.d.ts +21 -25
  125. package/dist/components/simple/forms/Textarea.svelte +2 -27
  126. package/dist/components/simple/forms/Textarea.svelte.d.ts +37 -41
  127. package/dist/components/simple/forms/Textfield.svelte +18 -56
  128. package/dist/components/simple/forms/Textfield.svelte.d.ts +51 -55
  129. package/dist/components/simple/forms/TreeEditor.svelte +95 -141
  130. package/dist/components/simple/forms/TreeEditor.svelte.d.ts +38 -42
  131. package/dist/components/simple/forms/TreeEditorItem.svelte +42 -77
  132. package/dist/components/simple/forms/TreeEditorItem.svelte.d.ts +50 -54
  133. package/dist/components/simple/forms/VerticalSwitch.svelte +1 -11
  134. package/dist/components/simple/forms/VerticalSwitch.svelte.d.ts +28 -32
  135. package/dist/components/simple/forms/VerticalTextSwitch.svelte +3 -15
  136. package/dist/components/simple/forms/VerticalTextSwitch.svelte.d.ts +26 -30
  137. package/dist/components/simple/lists/ColorInvertedSelector.svelte +23 -53
  138. package/dist/components/simple/lists/ColorInvertedSelector.svelte.d.ts +42 -46
  139. package/dist/components/simple/lists/HierarchyMenu.svelte +19 -38
  140. package/dist/components/simple/lists/HierarchyMenu.svelte.d.ts +30 -34
  141. package/dist/components/simple/lists/Paginator.svelte +41 -50
  142. package/dist/components/simple/lists/Paginator.svelte.d.ts +19 -23
  143. package/dist/components/simple/lists/SelectableMenuList.svelte +15 -43
  144. package/dist/components/simple/lists/SelectableMenuList.svelte.d.ts +20 -24
  145. package/dist/components/simple/lists/SelectableVerticalList.svelte +57 -99
  146. package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +47 -51
  147. package/dist/components/simple/lists/SidebarMenuList.svelte +70 -115
  148. package/dist/components/simple/lists/SidebarMenuList.svelte.d.ts +22 -26
  149. package/dist/components/simple/lists/SimpleTable.svelte +154 -264
  150. package/dist/components/simple/lists/SimpleTable.svelte.d.ts +66 -70
  151. package/dist/components/simple/loaders/CircularLoader.svelte +5 -16
  152. package/dist/components/simple/loaders/CircularLoader.svelte.d.ts +15 -19
  153. package/dist/components/simple/loaders/Skeleton.svelte +2 -3
  154. package/dist/components/simple/loaders/Skeleton.svelte.d.ts +12 -16
  155. package/dist/components/simple/media/AttachmentDownloader.svelte +3 -17
  156. package/dist/components/simple/media/AttachmentDownloader.svelte.d.ts +28 -32
  157. package/dist/components/simple/media/Avatar.svelte +12 -18
  158. package/dist/components/simple/media/Avatar.svelte.d.ts +20 -31
  159. package/dist/components/simple/media/Carousel.svelte +11 -29
  160. package/dist/components/simple/media/Carousel.svelte.d.ts +24 -28
  161. package/dist/components/simple/media/DescriptiveAvatar.svelte +4 -12
  162. package/dist/components/simple/media/DescriptiveAvatar.svelte.d.ts +28 -44
  163. package/dist/components/simple/media/FlagIcon.svelte +5 -8
  164. package/dist/components/simple/media/FlagIcon.svelte.d.ts +15 -19
  165. package/dist/components/simple/media/Gallery.svelte +29 -49
  166. package/dist/components/simple/media/Gallery.svelte.d.ts +23 -27
  167. package/dist/components/simple/media/Icon.svelte +4 -9
  168. package/dist/components/simple/media/Icon.svelte.d.ts +20 -24
  169. package/dist/components/simple/media/Image.svelte +20 -42
  170. package/dist/components/simple/media/Image.svelte.d.ts +33 -44
  171. package/dist/components/simple/media/ImageGrid.svelte +12 -37
  172. package/dist/components/simple/media/ImageGrid.svelte.d.ts +28 -32
  173. package/dist/components/simple/navigation/Breadcrumb.svelte +10 -28
  174. package/dist/components/simple/navigation/Breadcrumb.svelte.d.ts +22 -26
  175. package/dist/components/simple/navigation/Chip.svelte +23 -44
  176. package/dist/components/simple/navigation/Chip.svelte.d.ts +31 -42
  177. package/dist/components/simple/navigation/Drawer.svelte +65 -107
  178. package/dist/components/simple/navigation/Drawer.svelte.d.ts +37 -50
  179. package/dist/components/simple/navigation/HeaderMenu.svelte +23 -40
  180. package/dist/components/simple/navigation/HeaderMenu.svelte.d.ts +35 -39
  181. package/dist/components/simple/navigation/Navigator.svelte +8 -30
  182. package/dist/components/simple/navigation/Navigator.svelte.d.ts +24 -28
  183. package/dist/components/simple/navigation/TabSwitcher.svelte +47 -83
  184. package/dist/components/simple/navigation/TabSwitcher.svelte.d.ts +34 -38
  185. package/dist/components/simple/notifiers/AlertBanner.svelte +15 -43
  186. package/dist/components/simple/notifiers/AlertBanner.svelte.d.ts +37 -41
  187. package/dist/components/simple/progress/ProgressBar.svelte +13 -20
  188. package/dist/components/simple/progress/ProgressBar.svelte.d.ts +17 -21
  189. package/dist/components/simple/timeline/SimpleTimeLine.svelte +5 -19
  190. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +35 -39
  191. package/dist/components/simple/typography/Code.svelte +12 -27
  192. package/dist/components/simple/typography/Code.svelte.d.ts +24 -28
  193. package/dist/stores/debounce.d.ts +1 -0
  194. package/dist/stores/layouts/unstableSidebarOpened.d.ts +1 -0
  195. package/dist/stores/mediaQuery.d.ts +1 -0
  196. package/dist/stores/theme.d.ts +1 -0
  197. package/package.json +1 -1
@@ -1,61 +1,23 @@
1
- <script lang="ts" context="module">
2
- export type VariantOptions = "outlined" | "boxed";
3
- </script>
4
-
5
- <script lang="ts">
6
- export let label = "",
7
- placeholder = "",
8
- color: string | null = null,
9
- value: string | number = "",
10
- disabled = false,
11
- variant: VariantOptions = "outlined",
12
- width = "100%",
13
- height = "50px",
14
- maxWidth: string | undefined = undefined,
15
- minWidth: string | undefined = undefined,
16
- textColor = "black",
17
- borderWeight = "2px",
18
- borderRadius = "5px",
19
- borderColor: string | null = null,
20
- focusBorderColor: string | null = null,
21
- focusedBoxShadow: string | undefined = undefined,
22
- backgroundColor: string | null = null,
23
- padding: string | undefined = undefined,
24
- paddingLeft: string | undefined = undefined,
25
- paddingRight: string | undefined = undefined,
26
- paddingBottom: string | undefined = undefined,
27
- paddingTop: string | undefined = undefined,
28
- fontSize: string | undefined = undefined,
29
- type: "text" | "password" | "number" = "text",
30
- readonly = false,
31
- inputElement: HTMLElement | undefined = undefined,
32
- autocomplete = true;
33
-
34
- import { createId } from '@paralleldrive/cuid2';
35
- import { onMount } from "svelte";
36
-
37
- let inputId: string = createId(),
38
- focused = false,
39
- legendWidth = 0,
40
- labelElement: HTMLElement | undefined = undefined;
41
-
42
- onMount(() => {
43
- console.warn('TextField component is going to be depracated. Please use SimpleTextField instead.')
1
+ <script context="module"></script>
44
2
 
45
- if (labelElement) {
46
- legendWidth = labelElement.offsetWidth * 0.8 + 8;
47
- }
48
- });
49
-
50
- function handleFocus(): void {
51
- focused = true;
52
- }
53
-
54
- function handleBlur(): void {
55
- focused = false;
3
+ <script>export let label = "", placeholder = "", color = null, value = "", disabled = false, variant = "outlined", width = "100%", height = "50px", maxWidth = void 0, minWidth = void 0, textColor = "black", borderWeight = "2px", borderRadius = "5px", borderColor = null, focusBorderColor = null, focusedBoxShadow = void 0, backgroundColor = null, padding = void 0, paddingLeft = void 0, paddingRight = void 0, paddingBottom = void 0, paddingTop = void 0, fontSize = void 0, type = "text", readonly = false, inputElement = void 0, autocomplete = true;
4
+ import { createId } from "@paralleldrive/cuid2";
5
+ import { onMount } from "svelte";
6
+ let inputId = createId(), focused = false, legendWidth = 0, labelElement = void 0;
7
+ onMount(() => {
8
+ console.warn("TextField component is going to be depracated. Please use SimpleTextField instead.");
9
+ if (labelElement) {
10
+ legendWidth = labelElement.offsetWidth * 0.8 + 8;
56
11
  }
57
-
58
- $: if (labelElement) {
12
+ });
13
+ function handleFocus() {
14
+ focused = true;
15
+ }
16
+ function handleBlur() {
17
+ focused = false;
18
+ }
19
+ $:
20
+ if (labelElement) {
59
21
  legendWidth = !value && !focused ? 0 : labelElement.offsetWidth * 0.8 + 8;
60
22
  }
61
23
  </script>
@@ -1,58 +1,54 @@
1
+ import { SvelteComponent } from "svelte";
1
2
  export type VariantOptions = "outlined" | "boxed";
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;
3
+ declare const __propDef: {
4
+ props: {
5
+ label?: string | undefined;
6
+ placeholder?: string | undefined;
7
+ color?: string | null | undefined;
8
+ value?: string | number | undefined;
9
+ disabled?: boolean | undefined;
10
+ variant?: VariantOptions | undefined;
11
+ width?: string | undefined;
12
+ height?: string | undefined;
13
+ maxWidth?: string | undefined;
14
+ minWidth?: string | undefined;
15
+ textColor?: string | undefined;
16
+ borderWeight?: string | undefined;
17
+ borderRadius?: string | undefined;
18
+ borderColor?: string | null | undefined;
19
+ focusBorderColor?: string | null | undefined;
20
+ focusedBoxShadow?: string | undefined;
21
+ backgroundColor?: string | null | undefined;
22
+ padding?: string | undefined;
23
+ paddingLeft?: string | undefined;
24
+ paddingRight?: string | undefined;
25
+ paddingBottom?: string | undefined;
26
+ paddingTop?: string | undefined;
27
+ fontSize?: string | undefined;
28
+ type?: "number" | "text" | "password" | undefined;
29
+ readonly?: boolean | undefined;
30
+ inputElement?: HTMLElement | undefined;
31
+ autocomplete?: boolean | undefined;
12
32
  };
13
- z_$$bindings?: Bindings;
33
+ events: {
34
+ change: Event;
35
+ input: Event;
36
+ focus: FocusEvent;
37
+ blur: FocusEvent;
38
+ keydown: KeyboardEvent;
39
+ keypress: KeyboardEvent;
40
+ keyup: KeyboardEvent;
41
+ } & {
42
+ [evt: string]: CustomEvent<any>;
43
+ };
44
+ slots: {
45
+ 'prepend-inner': {};
46
+ 'append-inner': {};
47
+ };
48
+ };
49
+ export type TextfieldProps = typeof __propDef.props;
50
+ export type TextfieldEvents = typeof __propDef.events;
51
+ export type TextfieldSlots = typeof __propDef.slots;
52
+ export default class Textfield extends SvelteComponent<TextfieldProps, TextfieldEvents, TextfieldSlots> {
14
53
  }
15
- declare const Textfield: $$__sveltets_2_IsomorphicComponent<{
16
- label?: string;
17
- placeholder?: string;
18
- color?: string | null;
19
- value?: string | number;
20
- disabled?: boolean;
21
- variant?: VariantOptions;
22
- width?: string;
23
- height?: string;
24
- maxWidth?: string | undefined;
25
- minWidth?: string | undefined;
26
- textColor?: string;
27
- borderWeight?: string;
28
- borderRadius?: string;
29
- borderColor?: string | null;
30
- focusBorderColor?: string | null;
31
- focusedBoxShadow?: string | undefined;
32
- backgroundColor?: string | null;
33
- padding?: string | undefined;
34
- paddingLeft?: string | undefined;
35
- paddingRight?: string | undefined;
36
- paddingBottom?: string | undefined;
37
- paddingTop?: string | undefined;
38
- fontSize?: string | undefined;
39
- type?: "text" | "password" | "number";
40
- readonly?: boolean;
41
- inputElement?: HTMLElement | undefined;
42
- autocomplete?: boolean;
43
- }, {
44
- change: Event;
45
- input: Event;
46
- focus: FocusEvent;
47
- blur: FocusEvent;
48
- keydown: KeyboardEvent;
49
- keypress: KeyboardEvent;
50
- keyup: KeyboardEvent;
51
- } & {
52
- [evt: string]: CustomEvent<any>;
53
- }, {
54
- 'prepend-inner': {};
55
- 'append-inner': {};
56
- }, {}, string>;
57
- type Textfield = InstanceType<typeof Textfield>;
58
- export default Textfield;
54
+ export {};
@@ -1,150 +1,104 @@
1
- <script lang="ts" context="module">
2
- export type Item = {
3
- id: number | string,
4
- title: string,
5
- expanded?: boolean,
6
- sortable?: Sortable
7
- children?: Item[],
8
- data?: any
9
- };
10
-
11
- export type CleanItem = {
12
- id: number | string,
13
- title: string,
14
- expanded?: boolean,
15
- children?: CleanItem[],
16
- data?: any
17
- };
18
- </script>
19
-
20
- <script lang="ts">
21
- import Sortable from 'sortablejs';
22
- import { onMount, createEventDispatcher, type ComponentProps } from 'svelte';
23
- import TreeEditorItem from './TreeEditorItem.svelte';
24
- import { createId } from '@paralleldrive/cuid2';
25
- import lodash from 'lodash';
26
-
27
- let dispatch = createEventDispatcher<{
28
- 'change': {
29
- items: Item[]
30
- },
31
- 'input': {
32
- item: Item,
33
- items: Item[]
34
- },
35
- }>()
36
-
37
- export let items: Item[] = [],
38
- groupName: string = createId(),
39
- cleanItems: CleanItem[] = convertItemsInClean(items),
40
- collapsable: boolean = true,
41
- editable: boolean = true,
42
- updateItem: ComponentProps<TreeEditorItem>['updateItem'] = ({ item }) => { return item }
43
-
44
- let itemList: HTMLElement,
45
- sortable: Sortable | undefined = undefined,
46
- rerender: boolean = true,
47
- mounted: boolean = false
48
-
49
- onMount(() => {
50
- mounted = true
51
- initSortable()
52
- })
53
-
54
- async function initSortable() {
55
- if(!mounted) return
56
-
57
- sortable = Sortable.create(itemList, {
58
- handle: '.handle',
59
- group: groupName,
60
- animation: 150,
61
- ghostClass: 'ghost-drag-element',
62
- onEnd(event) {
63
- sortTree()
64
- }
65
- })
66
- }
67
-
68
- $: if(!!items) initSortable()
69
-
70
- function handleEnd(event: CustomEvent<{ ev: Sortable.SortableEvent }>) {
71
- sortTree()
72
- }
73
-
74
- async function sortTree() {
75
- let clonedItems = lodash.cloneDeep(items)
76
- let sortedItems = sortSubTree(clonedItems, items, sortable, 'main')
77
-
78
- dispatch('change', {
79
- items: sortedItems
80
- })
81
-
82
- items = sortedItems
83
- rerender = !rerender
84
- }
85
-
86
- function sortSubTree(totalItems: Item[], itemsToSort: Item[], parentSortable: Sortable | undefined, parentId?: Item['id']): Item[] {
87
- if(!parentSortable) throw new Error('Parent sortable could not be undefined')
88
- parentSortable.save()
89
-
90
- for(let i = 0; i < itemsToSort.length; i += 1) {
91
- let itemToSort = itemsToSort[i]
92
-
93
- if(!!itemToSort.children) {
94
- itemsToSort[i].children = sortSubTree(totalItems, itemToSort.children, itemToSort.sortable, itemToSort.id)
95
- }
96
- }
97
-
98
- let orderedIds: Item['id'][] = []
99
- for(let k = 0; k < parentSortable.el.children.length; k += 1) {
100
- let id = parentSortable.el.children[k].getAttribute('data-sortable-id')?.toString()
101
- if(!id) throw new Error('All html element must have data-sortbale-id')
102
- orderedIds.push(id)
1
+ <script context="module"></script>
2
+
3
+ <script>import Sortable from "sortablejs";
4
+ import { onMount, createEventDispatcher } from "svelte";
5
+ import TreeEditorItem from "./TreeEditorItem.svelte";
6
+ import { createId } from "@paralleldrive/cuid2";
7
+ import lodash from "lodash";
8
+ let dispatch = createEventDispatcher();
9
+ export let items = [], groupName = createId(), cleanItems = convertItemsInClean(items), collapsable = true, editable = true, updateItem = ({ item }) => {
10
+ return item;
11
+ };
12
+ let itemList, sortable = void 0, rerender = true, mounted = false;
13
+ onMount(() => {
14
+ mounted = true;
15
+ initSortable();
16
+ });
17
+ async function initSortable() {
18
+ if (!mounted)
19
+ return;
20
+ sortable = Sortable.create(itemList, {
21
+ handle: ".handle",
22
+ group: groupName,
23
+ animation: 150,
24
+ ghostClass: "ghost-drag-element",
25
+ onEnd(event) {
26
+ sortTree();
103
27
  }
104
-
105
- let newItems: Item[] = []
106
- for(let j = 0; j < orderedIds.length; j += 1) {
107
- let id = orderedIds[j]
108
- let itemIndex = itemsToSort.findIndex((its) => its.id.toString() == id)
109
- if(itemIndex === -1) {
110
- let itemToAdd = findItem(totalItems, id)
111
- if(!itemToAdd) continue
112
-
113
- newItems.push(itemToAdd)
114
- } else {
115
- newItems.push(itemsToSort[itemIndex])
116
- }
28
+ });
29
+ }
30
+ $:
31
+ if (!!items)
32
+ initSortable();
33
+ function handleEnd(event) {
34
+ sortTree();
35
+ }
36
+ async function sortTree() {
37
+ let clonedItems = lodash.cloneDeep(items);
38
+ let sortedItems = sortSubTree(clonedItems, items, sortable, "main");
39
+ dispatch("change", {
40
+ items: sortedItems
41
+ });
42
+ items = sortedItems;
43
+ rerender = !rerender;
44
+ }
45
+ function sortSubTree(totalItems, itemsToSort, parentSortable, parentId) {
46
+ if (!parentSortable)
47
+ throw new Error("Parent sortable could not be undefined");
48
+ parentSortable.save();
49
+ for (let i = 0; i < itemsToSort.length; i += 1) {
50
+ let itemToSort = itemsToSort[i];
51
+ if (!!itemToSort.children) {
52
+ itemsToSort[i].children = sortSubTree(totalItems, itemToSort.children, itemToSort.sortable, itemToSort.id);
117
53
  }
118
-
119
- return newItems
120
54
  }
121
-
122
- function findItem(itemsToSearch: Item[], id: Item['id']): Item | undefined {
123
- for(let i = 0; i < itemsToSearch.length; i += 1) {
124
- let item = itemsToSearch[i]
125
-
126
- if(item.id == id) return item
127
-
128
- if(!!item.children) {
129
- let result = findItem(item.children, id)
130
- if(!!result) return result
131
- }
55
+ let orderedIds = [];
56
+ for (let k = 0; k < parentSortable.el.children.length; k += 1) {
57
+ let id = parentSortable.el.children[k].getAttribute("data-sortable-id")?.toString();
58
+ if (!id)
59
+ throw new Error("All html element must have data-sortbale-id");
60
+ orderedIds.push(id);
61
+ }
62
+ let newItems = [];
63
+ for (let j = 0; j < orderedIds.length; j += 1) {
64
+ let id = orderedIds[j];
65
+ let itemIndex = itemsToSort.findIndex((its) => its.id.toString() == id);
66
+ if (itemIndex === -1) {
67
+ let itemToAdd = findItem(totalItems, id);
68
+ if (!itemToAdd)
69
+ continue;
70
+ newItems.push(itemToAdd);
71
+ } else {
72
+ newItems.push(itemsToSort[itemIndex]);
132
73
  }
133
74
  }
134
-
135
- function convertItemsInClean(items: Item[]): CleanItem[] {
136
- return items.map((i) => {
137
- return {
138
- id: i.id,
139
- title: i.title,
140
- expanded: i.expanded,
141
- children: !!i.children ? convertItemsInClean(i.children) : [],
142
- data: i.data
143
- }
144
- })
75
+ return newItems;
76
+ }
77
+ function findItem(itemsToSearch, id) {
78
+ for (let i = 0; i < itemsToSearch.length; i += 1) {
79
+ let item = itemsToSearch[i];
80
+ if (item.id == id)
81
+ return item;
82
+ if (!!item.children) {
83
+ let result = findItem(item.children, id);
84
+ if (!!result)
85
+ return result;
86
+ }
145
87
  }
146
-
147
- $: cleanItems = convertItemsInClean(items)
88
+ }
89
+ function convertItemsInClean(items2) {
90
+ return items2.map((i) => {
91
+ return {
92
+ id: i.id,
93
+ title: i.title,
94
+ expanded: i.expanded,
95
+ children: !!i.children ? convertItemsInClean(i.children) : [],
96
+ data: i.data
97
+ };
98
+ });
99
+ }
100
+ $:
101
+ cleanItems = convertItemsInClean(items);
148
102
  </script>
149
103
 
150
104
  {#key rerender}
@@ -1,3 +1,4 @@
1
+ import { SvelteComponent } from "svelte";
1
2
  export type Item = {
2
3
  id: number | string;
3
4
  title: string;
@@ -16,48 +17,43 @@ export type CleanItem = {
16
17
  import Sortable from 'sortablejs';
17
18
  import { type ComponentProps } from 'svelte';
18
19
  import TreeEditorItem from './TreeEditorItem.svelte';
19
- 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> {
20
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
21
- $$bindings?: Bindings;
22
- } & Exports;
23
- (internal: unknown, props: Props & {
24
- $$events?: Events;
25
- $$slots?: Slots;
26
- }): Exports & {
27
- $set?: any;
28
- $on?: any;
20
+ declare const __propDef: {
21
+ props: {
22
+ items?: Item[] | undefined;
23
+ groupName?: string | undefined;
24
+ cleanItems?: CleanItem[] | undefined;
25
+ collapsable?: boolean | undefined;
26
+ editable?: boolean | undefined;
27
+ updateItem?: ComponentProps<TreeEditorItem>['updateItem'];
29
28
  };
30
- z_$$bindings?: Bindings;
31
- }
32
- declare const TreeEditor: $$__sveltets_2_IsomorphicComponent<{
33
- items?: Item[];
34
- groupName?: string;
35
- cleanItems?: CleanItem[];
36
- collapsable?: boolean;
37
- editable?: boolean;
38
- updateItem?: ComponentProps<TreeEditorItem>["updateItem"];
39
- }, {
40
- click: CustomEvent<{
41
- item: Item;
42
- }>;
43
- change: CustomEvent<{
44
- items: Item[];
45
- }>;
46
- input: CustomEvent<{
47
- item: Item;
48
- items: Item[];
49
- }>;
50
- } & {
51
- [evt: string]: CustomEvent<any>;
52
- }, {
53
- append: {
54
- item: any;
55
- doUpdateItem: any;
29
+ events: {
30
+ click: CustomEvent<{
31
+ item: Item;
32
+ }>;
33
+ change: CustomEvent<{
34
+ items: Item[];
35
+ }>;
36
+ input: CustomEvent<{
37
+ item: Item;
38
+ items: Item[];
39
+ }>;
40
+ } & {
41
+ [evt: string]: CustomEvent<any>;
56
42
  };
57
- title: {
58
- item: any;
59
- doUpdateItem: any;
43
+ slots: {
44
+ append: {
45
+ item: any;
46
+ doUpdateItem: any;
47
+ };
48
+ title: {
49
+ item: any;
50
+ doUpdateItem: any;
51
+ };
60
52
  };
61
- }, {}, string>;
62
- type TreeEditor = InstanceType<typeof TreeEditor>;
63
- export default TreeEditor;
53
+ };
54
+ export type TreeEditorProps = typeof __propDef.props;
55
+ export type TreeEditorEvents = typeof __propDef.events;
56
+ export type TreeEditorSlots = typeof __propDef.slots;
57
+ export default class TreeEditor extends SvelteComponent<TreeEditorProps, TreeEditorEvents, TreeEditorSlots> {
58
+ }
59
+ export {};
@@ -1,89 +1,54 @@
1
- <script lang="ts">
2
- import Sortable from 'sortablejs';
3
- import { onMount, type ComponentProps } from "svelte";
4
- import type TreeEditor from './TreeEditor.svelte';
5
- import Icon from '../media/Icon.svelte';
6
- import Button from '../buttons/Button.svelte';
7
- import { slide } from 'svelte/transition';
8
- import { createEventDispatcher } from 'svelte';
9
- import type { Item } from './TreeEditor.svelte';
10
-
11
- let dispatch = createEventDispatcher<{
12
- 'change': {
13
- ev: Sortable.SortableEvent
14
- },
15
- 'end': {
16
- ev: Sortable.SortableEvent
1
+ <script>import Sortable from "sortablejs";
2
+ import { onMount } from "svelte";
3
+ import Icon from "../media/Icon.svelte";
4
+ import Button from "../buttons/Button.svelte";
5
+ import { slide } from "svelte/transition";
6
+ import { createEventDispatcher } from "svelte";
7
+ let dispatch = createEventDispatcher();
8
+ export let title, id, subtitle = void 0, group, animationDuration = 150, expanded = true, subItems = [], sortable = void 0, collapsable = true, editable = true, data = void 0, updateItem = void 0;
9
+ let subItemList, mounted = false;
10
+ onMount(() => {
11
+ mounted = true;
12
+ initSortable();
13
+ });
14
+ function initSortable() {
15
+ if (!mounted)
16
+ return;
17
+ sortable = Sortable.create(subItemList, {
18
+ group,
19
+ handle: ".handle",
20
+ animation: animationDuration,
21
+ ghostClass: "ghost-drag-element",
22
+ onEnd(ev) {
23
+ dispatch("end", { ev });
17
24
  },
18
- 'input': {
19
- item: Item,
20
- inputData?: any
25
+ onChange(ev) {
26
+ dispatch("change", { ev });
21
27
  },
22
- 'click': {
23
- item: Item
28
+ onUpdate(ev) {
24
29
  }
25
- }>()
26
-
27
- export let title: string,
28
- id: number | string,
29
- subtitle: string | undefined = undefined,
30
- group: string,
31
- animationDuration: number = 150,
32
- expanded: boolean | undefined = true,
33
- subItems: Item[] = [],
34
- sortable: Sortable | undefined = undefined,
35
- collapsable: boolean = true,
36
- editable: boolean = true,
37
- data: any = undefined,
38
- updateItem: ((params: { item: Item, inputData?: any }) => Item) | undefined = undefined
39
-
40
- let subItemList: HTMLElement,
41
- mounted: boolean = false
42
-
43
- onMount(() => {
44
- mounted = true
45
- initSortable()
46
- })
47
-
48
- function initSortable() {
49
- if(!mounted) return
50
-
51
- sortable = Sortable.create(subItemList, {
52
- group: group,
53
- handle: '.handle',
54
- animation: animationDuration,
55
- ghostClass: 'ghost-drag-element',
56
- onEnd(ev) {
57
- dispatch('end', { ev })
58
- },
59
- onChange(ev) {
60
- dispatch('change', { ev })
61
- },
62
- onUpdate(ev) {
63
- }
64
- })
65
- }
66
-
67
- let currentItem: Item
68
- $: currentItem = {
30
+ });
31
+ }
32
+ let currentItem;
33
+ $:
34
+ currentItem = {
69
35
  id,
70
36
  title,
71
37
  expanded,
72
38
  sortable,
73
39
  children: subItems,
74
- data: data
75
- }
76
-
77
- $: if(!!subItems) initSortable()
78
-
79
- function doUpdateItem(item: Item, inputData: any) {
80
- let newItem = item
81
- if(!!updateItem) {
82
- newItem = updateItem({ item, inputData })
83
- }
84
-
85
- dispatch('input', { item: newItem })
40
+ data
41
+ };
42
+ $:
43
+ if (!!subItems)
44
+ initSortable();
45
+ function doUpdateItem(item, inputData) {
46
+ let newItem = item;
47
+ if (!!updateItem) {
48
+ newItem = updateItem({ item, inputData });
86
49
  }
50
+ dispatch("input", { item: newItem });
51
+ }
87
52
  </script>
88
53
 
89
54
  <li