@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.
- package/dist/components/composed/buttons/ActivableButton.svelte +2 -6
- package/dist/components/composed/buttons/ActivableButton.svelte.d.ts +32 -36
- package/dist/components/composed/common/MenuOrDrawer.svelte +5 -21
- package/dist/components/composed/common/MenuOrDrawer.svelte.d.ts +36 -50
- package/dist/components/composed/common/MenuOrDrawerOptions.svelte +13 -29
- package/dist/components/composed/common/MenuOrDrawerOptions.svelte.d.ts +30 -34
- package/dist/components/composed/common/QuickActions.svelte +20 -52
- package/dist/components/composed/common/QuickActions.svelte.d.ts +20 -24
- package/dist/components/composed/common/ToolTip.svelte +22 -31
- package/dist/components/composed/common/ToolTip.svelte.d.ts +43 -32
- package/dist/components/composed/forms/AsyncAutocomplete.svelte +23 -44
- package/dist/components/composed/forms/AsyncAutocomplete.svelte.d.ts +39 -44
- package/dist/components/composed/forms/AvatarDropdown.svelte +27 -57
- package/dist/components/composed/forms/AvatarDropdown.svelte.d.ts +41 -45
- package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte +17 -35
- package/dist/components/composed/forms/ConfirmOrCancelButtons.svelte.d.ts +37 -41
- package/dist/components/composed/forms/CountriesAutocomplete.svelte +7 -16
- package/dist/components/composed/forms/CountriesAutocomplete.svelte.d.ts +60 -31
- package/dist/components/composed/forms/DatePickerTextField.svelte +114 -166
- package/dist/components/composed/forms/DatePickerTextField.svelte.d.ts +63 -67
- package/dist/components/composed/forms/Dropdown.svelte +21 -51
- package/dist/components/composed/forms/Dropdown.svelte.d.ts +43 -48
- package/dist/components/composed/forms/IconsDropdown.svelte +33 -61
- package/dist/components/composed/forms/IconsDropdown.svelte.d.ts +26 -30
- package/dist/components/composed/forms/LabelAndSelect.svelte +7 -32
- package/dist/components/composed/forms/LabelAndSelect.svelte.d.ts +31 -35
- package/dist/components/composed/forms/LabelAndTextField.svelte +5 -30
- package/dist/components/composed/forms/LabelAndTextField.svelte.d.ts +42 -46
- package/dist/components/composed/forms/ToggleList.svelte +33 -59
- package/dist/components/composed/forms/ToggleList.svelte.d.ts +17 -21
- package/dist/components/composed/forms/YearPickerTextField.svelte +74 -114
- package/dist/components/composed/forms/YearPickerTextField.svelte.d.ts +49 -53
- package/dist/components/composed/list/DynamicTable.svelte +707 -1102
- package/dist/components/composed/list/DynamicTable.svelte.d.ts +365 -369
- package/dist/components/composed/list/PaginatedTable.svelte +76 -139
- package/dist/components/composed/list/PaginatedTable.svelte.d.ts +108 -108
- package/dist/components/composed/progress/HorizontalStackedProgress.svelte +30 -58
- package/dist/components/composed/progress/HorizontalStackedProgress.svelte.d.ts +21 -25
- package/dist/components/composed/search/DynamicFilters.svelte +82 -103
- package/dist/components/composed/search/DynamicFilters.svelte.d.ts +27 -31
- package/dist/components/composed/search/FilterEditor.svelte +77 -106
- package/dist/components/composed/search/FilterEditor.svelte.d.ts +33 -37
- package/dist/components/composed/search/Filters.svelte +292 -361
- package/dist/components/composed/search/Filters.svelte.d.ts +51 -55
- package/dist/components/composed/search/GlobalSearchTextField.svelte +41 -79
- package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +39 -43
- package/dist/components/composed/search/MobileFilterEditor.svelte +93 -135
- package/dist/components/composed/search/MobileFilterEditor.svelte.d.ts +35 -39
- package/dist/components/composed/search/SearchBar.svelte +5 -28
- package/dist/components/composed/search/SearchBar.svelte.d.ts +30 -34
- package/dist/components/composed/search/SearchResults.svelte +7 -42
- package/dist/components/composed/search/SearchResults.svelte.d.ts +36 -40
- package/dist/components/composed/shop/ProductCard.svelte +4 -18
- package/dist/components/composed/shop/ProductCard.svelte.d.ts +28 -32
- package/dist/components/composed/shop/ProductsGrid.svelte +2 -22
- package/dist/components/composed/shop/ProductsGrid.svelte.d.ts +40 -44
- package/dist/components/layouts/CollapsibleSideBarLayout.svelte +38 -77
- package/dist/components/layouts/CollapsibleSideBarLayout.svelte.d.ts +69 -109
- package/dist/components/layouts/StableDividedSideBarLayout.svelte +17 -47
- package/dist/components/layouts/StableDividedSideBarLayout.svelte.d.ts +32 -50
- package/dist/components/layouts/UnstableDividedSideBarLayout.svelte +30 -53
- package/dist/components/layouts/UnstableDividedSideBarLayout.svelte.d.ts +63 -103
- package/dist/components/simple/buttons/Button.svelte +32 -78
- package/dist/components/simple/buttons/Button.svelte.d.ts +35 -47
- package/dist/components/simple/buttons/LinkButton.svelte +22 -54
- package/dist/components/simple/buttons/LinkButton.svelte.d.ts +33 -50
- package/dist/components/simple/charts/GanymedeBarChart.svelte +134 -172
- package/dist/components/simple/charts/GanymedeBarChart.svelte.d.ts +46 -50
- package/dist/components/simple/charts/GanymedeLineChart.svelte +115 -157
- package/dist/components/simple/charts/GanymedeLineChart.svelte.d.ts +47 -51
- package/dist/components/simple/charts/GanymedePieChart.svelte +39 -62
- package/dist/components/simple/charts/GanymedePieChart.svelte.d.ts +33 -37
- package/dist/components/simple/common/Card.svelte +1 -20
- package/dist/components/simple/common/Card.svelte.d.ts +38 -51
- package/dist/components/simple/common/CollapsibleDivider.svelte +11 -23
- package/dist/components/simple/common/CollapsibleDivider.svelte.d.ts +25 -29
- package/dist/components/simple/common/Divider.svelte +2 -8
- package/dist/components/simple/common/Divider.svelte.d.ts +19 -23
- package/dist/components/simple/common/Gesture.svelte +46 -64
- package/dist/components/simple/common/Gesture.svelte.d.ts +17 -21
- package/dist/components/simple/common/InfiniteScroll.svelte +29 -52
- package/dist/components/simple/common/InfiniteScroll.svelte.d.ts +20 -24
- package/dist/components/simple/common/IntersectionObserver.svelte +32 -45
- package/dist/components/simple/common/IntersectionObserver.svelte.d.ts +21 -34
- package/dist/components/simple/common/MediaQuery.svelte +21 -30
- package/dist/components/simple/common/MediaQuery.svelte.d.ts +30 -34
- package/dist/components/simple/common/Menu.svelte +201 -290
- package/dist/components/simple/common/Menu.svelte.d.ts +40 -51
- package/dist/components/simple/common/Playground.svelte +17 -18
- package/dist/components/simple/common/Playground.svelte.d.ts +15 -19
- package/dist/components/simple/common/VerticalDraggableList.svelte +16 -35
- package/dist/components/simple/common/VerticalDraggableList.svelte.d.ts +29 -33
- package/dist/components/simple/dashboards/DashboardGridShaper.svelte +26 -32
- package/dist/components/simple/dashboards/DashboardGridShaper.svelte.d.ts +12 -16
- package/dist/components/simple/dates/Calendar.svelte +28 -52
- package/dist/components/simple/dates/Calendar.svelte.d.ts +41 -45
- package/dist/components/simple/dates/DatePicker.svelte +60 -90
- package/dist/components/simple/dates/DatePicker.svelte.d.ts +40 -44
- package/dist/components/simple/dates/MonthSelector.svelte +15 -37
- package/dist/components/simple/dates/MonthSelector.svelte.d.ts +31 -35
- package/dist/components/simple/dates/TimePicker.svelte +31 -45
- package/dist/components/simple/dates/TimePicker.svelte.d.ts +20 -24
- package/dist/components/simple/dates/TimePickerTextField.svelte +35 -56
- package/dist/components/simple/dates/TimePickerTextField.svelte.d.ts +24 -28
- package/dist/components/simple/dates/YearSelector.svelte +29 -54
- package/dist/components/simple/dates/YearSelector.svelte.d.ts +31 -35
- package/dist/components/simple/dialogs/Dialog.svelte +62 -92
- package/dist/components/simple/dialogs/Dialog.svelte.d.ts +28 -42
- package/dist/components/simple/forms/Autocomplete.svelte +142 -201
- package/dist/components/simple/forms/Autocomplete.svelte.d.ts +79 -83
- package/dist/components/simple/forms/Checkbox.svelte +24 -40
- package/dist/components/simple/forms/Checkbox.svelte.d.ts +21 -25
- package/dist/components/simple/forms/FileInput.svelte +48 -88
- package/dist/components/simple/forms/FileInput.svelte.d.ts +33 -37
- package/dist/components/simple/forms/FileInputList.svelte +34 -52
- package/dist/components/simple/forms/FileInputList.svelte.d.ts +39 -43
- package/dist/components/simple/forms/RadioButton.svelte +3 -11
- package/dist/components/simple/forms/RadioButton.svelte.d.ts +27 -31
- package/dist/components/simple/forms/Select.svelte +3 -16
- package/dist/components/simple/forms/Select.svelte.d.ts +20 -24
- package/dist/components/simple/forms/SimpleTextField.svelte +6 -53
- package/dist/components/simple/forms/SimpleTextField.svelte.d.ts +60 -64
- package/dist/components/simple/forms/Switch.svelte +16 -30
- package/dist/components/simple/forms/Switch.svelte.d.ts +21 -25
- package/dist/components/simple/forms/Textarea.svelte +2 -27
- package/dist/components/simple/forms/Textarea.svelte.d.ts +37 -41
- package/dist/components/simple/forms/Textfield.svelte +18 -56
- package/dist/components/simple/forms/Textfield.svelte.d.ts +51 -55
- package/dist/components/simple/forms/TreeEditor.svelte +95 -141
- package/dist/components/simple/forms/TreeEditor.svelte.d.ts +38 -42
- package/dist/components/simple/forms/TreeEditorItem.svelte +42 -77
- package/dist/components/simple/forms/TreeEditorItem.svelte.d.ts +50 -54
- package/dist/components/simple/forms/VerticalSwitch.svelte +1 -11
- package/dist/components/simple/forms/VerticalSwitch.svelte.d.ts +28 -32
- package/dist/components/simple/forms/VerticalTextSwitch.svelte +3 -15
- package/dist/components/simple/forms/VerticalTextSwitch.svelte.d.ts +26 -30
- package/dist/components/simple/lists/ColorInvertedSelector.svelte +23 -53
- package/dist/components/simple/lists/ColorInvertedSelector.svelte.d.ts +42 -46
- package/dist/components/simple/lists/HierarchyMenu.svelte +19 -38
- package/dist/components/simple/lists/HierarchyMenu.svelte.d.ts +30 -34
- package/dist/components/simple/lists/Paginator.svelte +41 -50
- package/dist/components/simple/lists/Paginator.svelte.d.ts +19 -23
- package/dist/components/simple/lists/SelectableMenuList.svelte +15 -43
- package/dist/components/simple/lists/SelectableMenuList.svelte.d.ts +20 -24
- package/dist/components/simple/lists/SelectableVerticalList.svelte +57 -99
- package/dist/components/simple/lists/SelectableVerticalList.svelte.d.ts +47 -51
- package/dist/components/simple/lists/SidebarMenuList.svelte +70 -115
- package/dist/components/simple/lists/SidebarMenuList.svelte.d.ts +22 -26
- package/dist/components/simple/lists/SimpleTable.svelte +154 -264
- package/dist/components/simple/lists/SimpleTable.svelte.d.ts +66 -70
- package/dist/components/simple/loaders/CircularLoader.svelte +5 -16
- package/dist/components/simple/loaders/CircularLoader.svelte.d.ts +15 -19
- package/dist/components/simple/loaders/Skeleton.svelte +2 -3
- package/dist/components/simple/loaders/Skeleton.svelte.d.ts +12 -16
- package/dist/components/simple/media/AttachmentDownloader.svelte +3 -17
- package/dist/components/simple/media/AttachmentDownloader.svelte.d.ts +28 -32
- package/dist/components/simple/media/Avatar.svelte +12 -18
- package/dist/components/simple/media/Avatar.svelte.d.ts +20 -31
- package/dist/components/simple/media/Carousel.svelte +11 -29
- package/dist/components/simple/media/Carousel.svelte.d.ts +24 -28
- package/dist/components/simple/media/DescriptiveAvatar.svelte +4 -12
- package/dist/components/simple/media/DescriptiveAvatar.svelte.d.ts +28 -44
- package/dist/components/simple/media/FlagIcon.svelte +5 -8
- package/dist/components/simple/media/FlagIcon.svelte.d.ts +15 -19
- package/dist/components/simple/media/Gallery.svelte +29 -49
- package/dist/components/simple/media/Gallery.svelte.d.ts +23 -27
- package/dist/components/simple/media/Icon.svelte +4 -9
- package/dist/components/simple/media/Icon.svelte.d.ts +20 -24
- package/dist/components/simple/media/Image.svelte +20 -42
- package/dist/components/simple/media/Image.svelte.d.ts +33 -44
- package/dist/components/simple/media/ImageGrid.svelte +12 -37
- package/dist/components/simple/media/ImageGrid.svelte.d.ts +28 -32
- package/dist/components/simple/navigation/Breadcrumb.svelte +10 -28
- package/dist/components/simple/navigation/Breadcrumb.svelte.d.ts +22 -26
- package/dist/components/simple/navigation/Chip.svelte +23 -44
- package/dist/components/simple/navigation/Chip.svelte.d.ts +31 -42
- package/dist/components/simple/navigation/Drawer.svelte +65 -107
- package/dist/components/simple/navigation/Drawer.svelte.d.ts +37 -50
- package/dist/components/simple/navigation/HeaderMenu.svelte +23 -40
- package/dist/components/simple/navigation/HeaderMenu.svelte.d.ts +35 -39
- package/dist/components/simple/navigation/Navigator.svelte +8 -30
- package/dist/components/simple/navigation/Navigator.svelte.d.ts +24 -28
- package/dist/components/simple/navigation/TabSwitcher.svelte +47 -83
- package/dist/components/simple/navigation/TabSwitcher.svelte.d.ts +34 -38
- package/dist/components/simple/notifiers/AlertBanner.svelte +15 -43
- package/dist/components/simple/notifiers/AlertBanner.svelte.d.ts +37 -41
- package/dist/components/simple/progress/ProgressBar.svelte +13 -20
- package/dist/components/simple/progress/ProgressBar.svelte.d.ts +17 -21
- package/dist/components/simple/timeline/SimpleTimeLine.svelte +5 -19
- package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +35 -39
- package/dist/components/simple/typography/Code.svelte +12 -27
- package/dist/components/simple/typography/Code.svelte.d.ts +24 -28
- package/dist/stores/debounce.d.ts +1 -0
- package/dist/stores/layouts/unstableSidebarOpened.d.ts +1 -0
- package/dist/stores/mediaQuery.d.ts +1 -0
- package/dist/stores/theme.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,61 +1,23 @@
|
|
|
1
|
-
<script
|
|
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
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
43
|
+
slots: {
|
|
44
|
+
append: {
|
|
45
|
+
item: any;
|
|
46
|
+
doUpdateItem: any;
|
|
47
|
+
};
|
|
48
|
+
title: {
|
|
49
|
+
item: any;
|
|
50
|
+
doUpdateItem: any;
|
|
51
|
+
};
|
|
60
52
|
};
|
|
61
|
-
}
|
|
62
|
-
type
|
|
63
|
-
export
|
|
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
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
inputData?: any
|
|
25
|
+
onChange(ev) {
|
|
26
|
+
dispatch("change", { ev });
|
|
21
27
|
},
|
|
22
|
-
|
|
23
|
-
item: Item
|
|
28
|
+
onUpdate(ev) {
|
|
24
29
|
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|