@medyll/idae-slotui-svelte 0.122.1 → 0.123.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.
- package/README.md +47 -47
- package/dist/base/alert/Alert.demo.svelte +62 -62
- package/dist/base/alert/Alert.svelte +121 -121
- package/dist/base/alert/alert.scss +93 -93
- package/dist/base/avatar/Avatar.demo.svelte +41 -41
- package/dist/base/avatar/Avatar.preview.svelte +6 -6
- package/dist/base/avatar/Avatar.svelte +65 -65
- package/dist/base/avatar/avatar.scss +17 -17
- package/dist/base/backdrop/Backdrop.demo.svelte +49 -49
- package/dist/base/backdrop/Backdrop.svelte +78 -78
- package/dist/base/backdrop/backdrop.scss +34 -34
- package/dist/base/badge/Badge.svelte +31 -31
- package/dist/base/badge/badge.scss +19 -19
- package/dist/base/box/Box.demo.svelte +54 -54
- package/dist/base/box/Box.svelte +72 -72
- package/dist/base/box/box.scss +33 -33
- package/dist/base/breadCrumb/BreadCrumb.svelte +23 -23
- package/dist/base/breadCrumb/breadcrumb.scss +11 -11
- package/dist/base/cartouche/Cartouche.demo.svelte +108 -108
- package/dist/base/cartouche/Cartouche.svelte +114 -114
- package/dist/base/cartouche/cartouche.scss +114 -114
- package/dist/base/chipper/Chipper.demo.svelte +45 -45
- package/dist/base/chipper/Chipper.svelte +36 -36
- package/dist/base/chipper/chipper.scss +65 -65
- package/dist/base/columner/Column.svelte +62 -62
- package/dist/base/columner/Columner.demo.svelte +15 -15
- package/dist/base/columner/Columner.svelte +21 -21
- package/dist/base/contentSwitcher/ContentSwitcher.demo.svelte +45 -45
- package/dist/base/contentSwitcher/ContentSwitcher.svelte +63 -63
- package/dist/base/contentSwitcher/content-switcher.scss +22 -22
- package/dist/base/debug/Debug.svelte +21 -21
- package/dist/base/demoer/DemoPage.svelte +40 -40
- package/dist/base/demoer/Demoer.svelte +170 -170
- package/dist/base/demoer/DemoerCode.svelte +45 -45
- package/dist/base/demoer/DemoerComponent.svelte +50 -50
- package/dist/base/divider/Divider.demo.svelte +34 -34
- package/dist/base/divider/Divider.svelte +68 -68
- package/dist/base/divider/divider.scss +19 -19
- package/dist/base/icon/Icon.demo.svelte +24 -24
- package/dist/base/icon/Icon.svelte +117 -117
- package/dist/base/icon/icon.scss +17 -17
- package/dist/base/paper/Paper.demo.svelte +31 -31
- package/dist/base/paper/Paper.svelte +20 -20
- package/dist/base/paper/paper.scss +15 -15
- package/dist/base/titleBar/TitleBar.demo.svelte +30 -30
- package/dist/base/titleBar/TitleBar.svelte +40 -40
- package/dist/base/titleBar/title-bar.scss +29 -29
- package/dist/controls/autocomplete/AutoComplete.demo.svelte +88 -88
- package/dist/controls/autocomplete/AutoComplete.svelte +152 -152
- package/dist/controls/autocomplete/auto-complete.scss +15 -15
- package/dist/controls/button/Button.demo.svelte +165 -165
- package/dist/controls/button/Button.svelte +95 -95
- package/dist/controls/button/ButtonAction.svelte +55 -55
- package/dist/controls/button/ButtonMenu.svelte +55 -55
- package/dist/controls/button/IconButton.svelte +45 -45
- package/dist/controls/button/button-action.scss +8 -8
- package/dist/controls/button/button-menu.scss +36 -36
- package/dist/controls/button/button.scss +293 -293
- package/dist/controls/checkbox/Checkbox.demo.svelte +29 -29
- package/dist/controls/checkbox/Checkbox.svelte +59 -59
- package/dist/controls/checkbox/checkbox.scss +115 -115
- package/dist/controls/confirm/Confirm.demo.svelte +60 -60
- package/dist/controls/confirm/Confirm.preview.svelte +14 -14
- package/dist/controls/confirm/Confirm.svelte +156 -156
- package/dist/controls/confirm/confirm.scss +12 -12
- package/dist/controls/inplaceedit/InPlaceEdit.demo.svelte +41 -41
- package/dist/controls/inplaceedit/InPlaceEdit.svelte +109 -109
- package/dist/controls/progress/Progress.demo.svelte +30 -30
- package/dist/controls/progress/Progress.svelte +26 -26
- package/dist/controls/progress/progress.scss +23 -23
- package/dist/controls/rating/Rating.demo.svelte +45 -45
- package/dist/controls/rating/Rating.svelte +44 -44
- package/dist/controls/rating/rating.scss +9 -9
- package/dist/controls/select/Select.demo.svelte +101 -101
- package/dist/controls/select/Select.svelte +125 -125
- package/dist/controls/select/select.scss +13 -13
- package/dist/controls/slider/Slider.demo.svelte +34 -34
- package/dist/controls/slider/Slider.svelte +153 -153
- package/dist/controls/slider/slider.scss +51 -51
- package/dist/controls/stepper/Stepper.demo.svelte +32 -32
- package/dist/controls/stepper/Stepper.svelte +30 -30
- package/dist/controls/stepper/stepper.scss +23 -23
- package/dist/controls/switch/Switch.demo.svelte +61 -61
- package/dist/controls/switch/Switch.svelte +45 -45
- package/dist/controls/switch/switch.scss +73 -73
- package/dist/controls/textfield/TextField.demo.svelte +79 -79
- package/dist/controls/textfield/TextField.svelte +86 -86
- package/dist/controls/textfield/textfield.scss +68 -68
- package/dist/csss/csss.scss +10 -10
- package/dist/data/dataList/DataList.demo.svelte +151 -151
- package/dist/data/dataList/DataList.preview.svelte +23 -23
- package/dist/data/dataList/DataList.svelte +233 -233
- package/dist/data/dataList/DataListCell.svelte +212 -212
- package/dist/data/dataList/DataListHead.svelte +75 -75
- package/dist/data/dataList/DataListRow.svelte +93 -93
- package/dist/data/dataList/datalist.scss +157 -157
- package/dist/data/finder/Finder.demo.svelte +55 -55
- package/dist/data/finder/Finder.svelte +166 -166
- package/dist/data/finder/finder.scss +14 -14
- package/dist/data/grouper/Grouper.demo.svelte +36 -36
- package/dist/data/grouper/Grouper.svelte +85 -85
- package/dist/data/jsoner/Jsoner.svelte +40 -40
- package/dist/data/list/List.svelte +16 -16
- package/dist/data/list/ListItem.svelte +10 -10
- package/dist/data/list/ListTitle.svelte +8 -8
- package/dist/data/loader/Loader.demo.svelte +95 -95
- package/dist/data/loader/Loader.preview.svelte +7 -7
- package/dist/data/loader/Loader.svelte +99 -99
- package/dist/data/loader/loader.scss +50 -50
- package/dist/data/sorter/Sorter.demo.svelte +62 -62
- package/dist/data/sorter/Sorter.svelte +80 -80
- package/dist/data/sorter/Sorterer.svelte +27 -27
- package/dist/data/sorter/sorterer.scss +11 -11
- package/dist/index.d.ts +39 -38
- package/dist/index.js +39 -38
- package/dist/navigation/drawer/Drawer.demo.svelte +52 -52
- package/dist/navigation/drawer/Drawer.svelte +163 -163
- package/dist/navigation/drawer/drawer.scss +69 -69
- package/dist/navigation/tabs/Tabs.demo.svelte +83 -83
- package/dist/navigation/tabs/Tabs.preview.svelte +22 -22
- package/dist/navigation/tabs/Tabs.svelte +158 -158
- package/dist/navigation/tabs/tabs.scss +92 -92
- package/dist/slotui-css/slotui-css.css +141 -141
- package/dist/slotui-css/slotui-min-css.css +141 -141
- package/dist/styles/slotui-mixins.scss +168 -168
- package/dist/styles/slotui-presets.scss +56 -56
- package/dist/styles/slotuisheet/SlotuiSheet.svelte +36 -36
- package/dist/styles/slotuisheet/SlotyuiSheet.demo.svelte +28 -28
- package/dist/styles/slotuisheet/sheetConfig.scss +7 -7
- package/dist/styles/slotuisheet/slotui-sheet.scss +192 -192
- package/dist/styles/slotuisheet/stylesheet-container.scss +147 -147
- package/dist/styles/slotuisheet/stylesheet.scss +156 -156
- package/dist/types/slotui-ambient.d.ts +27 -27
- package/dist/ui/bootstrapp/BootStrApp.svelte +92 -92
- package/dist/ui/chromeFrame/ChromeFrame.svelte +43 -43
- package/dist/ui/chromeFrame/ChromeFrameButtonList.svelte +33 -33
- package/dist/ui/chromeFrame/ChromeFrameList.svelte +106 -106
- package/dist/ui/chromeFrame/chrome-frame.scss +34 -34
- package/dist/ui/frame/Frame.demo.svelte +48 -48
- package/dist/ui/frame/Frame.svelte +90 -90
- package/dist/ui/frame/frame.scss +46 -46
- package/dist/ui/login/Login.demo.svelte +62 -62
- package/dist/ui/login/Login.svelte +102 -102
- package/dist/ui/marquee/Marquee.demo.svelte +33 -33
- package/dist/ui/marquee/Marquee.svelte +97 -97
- package/dist/ui/marquee/marquee.scss +34 -34
- package/dist/ui/menu/Menu.svelte +9 -9
- package/dist/ui/menu/MenuItem.svelte +9 -9
- package/dist/ui/menu/MenuTitle.svelte +10 -10
- package/dist/ui/menu/menu.scss +61 -61
- package/dist/ui/menuList/MenuList.demo.svelte +73 -73
- package/dist/ui/menuList/MenuList.svelte +143 -143
- package/dist/ui/menuList/MenuListItem.svelte +134 -134
- package/dist/ui/menuList/MenuListTitle.svelte +10 -10
- package/dist/ui/menuList/menu-list.scss +120 -120
- package/dist/ui/panel/Panel.demo.svelte +169 -169
- package/dist/ui/panel/Panel.svelte +96 -96
- package/dist/ui/panel/PanelGrid.svelte +62 -62
- package/dist/ui/panel/PanelSlide.svelte +156 -156
- package/dist/ui/panel/Paneler.svelte +63 -63
- package/dist/ui/panel/panel.scss +32 -32
- package/dist/ui/popper/Popper.demo.svelte +92 -92
- package/dist/ui/popper/Popper.svelte +160 -160
- package/dist/ui/popper/popper.scss +108 -108
- package/dist/ui/preview/Preview.svelte +41 -41
- package/dist/ui/serviceBox/ServiceBox.svelte +24 -24
- package/dist/ui/startMenu/BootMenu.svelte +102 -102
- package/dist/ui/startMenu/boot-menu.scss +86 -86
- package/dist/ui/taskbar/TaskBarContent.svelte +20 -20
- package/dist/ui/taskbar/Taskbar.svelte +26 -26
- package/dist/ui/taskbar/taskbar.scss +28 -28
- package/dist/ui/themeswitcher/ThemeSwitcher.svelte +18 -18
- package/dist/ui/toast/Toast.demo.svelte +19 -19
- package/dist/ui/toast/Toast.svelte +60 -60
- package/dist/ui/toast/Toaster.svelte +18 -18
- package/dist/ui/toggleBar/ToggleBar.demo.svelte +114 -114
- package/dist/ui/toggleBar/ToggleBar.svelte +58 -58
- package/dist/ui/toggleBar/toggle-bar.scss +45 -45
- package/dist/ui/toolBar/ToolBar.demo.svelte +98 -98
- package/dist/ui/toolBar/ToolBar.svelte +30 -30
- package/dist/ui/toolBar/toolbar.scss +32 -32
- package/dist/ui/tree/Tree.demo.svelte +84 -84
- package/dist/ui/tree/Tree.preview.svelte +19 -19
- package/dist/ui/tree/Tree.svelte +182 -182
- package/dist/ui/tree/tree.scss +38 -38
- package/dist/ui/window/Window.demo.svelte +111 -111
- package/dist/ui/window/Window.svelte +177 -177
- package/dist/ui/window/window.scss +66 -66
- package/dist/utils/content/Content.svelte +78 -78
- package/dist/utils/contextRooter/ContextRooter.demo.svelte +33 -33
- package/dist/utils/contextRooter/ContextRooter.svelte +6 -6
- package/dist/utils/css/Css.demo.svelte +5 -5
- package/dist/utils/css/Css.svelte +64 -64
- package/dist/utils/effects/transitions.js +6 -6
- package/dist/utils/looper/Looper.demo.svelte +36 -36
- package/dist/utils/looper/Looper.svelte +47 -47
- package/dist/utils/slotted/Slotted.svelte +21 -21
- package/dist/utils/stylesheet/StyleSheet.demo.svelte +28 -28
- package/dist/utils/stylesheet/StyleSheet.svelte +30 -30
- package/dist/utils/stylesheet/containerConfig.scss +7 -7
- package/dist/utils/stylesheet/stylesheet.scss +147 -147
- package/dist/utils/uses/sx4u/sx4uPreprocess.js +34 -34
- package/package.json +3 -3
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Divider from '../../base/divider/Divider.svelte';
|
|
3
|
-
import List from '../list/List.svelte';
|
|
4
|
-
import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
|
|
5
|
-
import Sorter from './Sorter.svelte';
|
|
6
|
-
import Sorterer from './Sorterer.svelte';
|
|
7
|
-
|
|
8
|
-
const data = [...Array(5)].map((r, i) => {
|
|
9
|
-
return {
|
|
10
|
-
id: i,
|
|
11
|
-
name: 'surname ' + i,
|
|
12
|
-
directory: ((prop: any) => 'dir-' + (i % 4) + prop)(i),
|
|
13
|
-
nestedData: {
|
|
14
|
-
uuid: crypto?.randomUUID() ?? i
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
let sortedData: any[] = [];
|
|
20
|
-
let activeCommonSortField = '';
|
|
21
|
-
</script>
|
|
22
|
-
|
|
23
|
-
<ComponentDemo
|
|
24
|
-
component="Sorter"
|
|
25
|
-
cite="Then, what was before became the after.<br /> R. Hakran, 824"
|
|
26
|
-
>
|
|
27
|
-
<h5>Button mode</h5>
|
|
28
|
-
<div class="flex-h gap-small">
|
|
29
|
-
<div>
|
|
30
|
-
<div class="flex-h gap-small">
|
|
31
|
-
<Sorter
|
|
32
|
-
sortByOrder="asc"
|
|
33
|
-
sortByField="id"
|
|
34
|
-
bind:sortedData
|
|
35
|
-
bind:activeCommonSortField
|
|
36
|
-
{data}
|
|
37
|
-
/>
|
|
38
|
-
<Sorter sortByField="name" bind:sortedData bind:activeCommonSortField {data} />
|
|
39
|
-
<Sorter sortByField="directory" bind:sortedData bind:activeCommonSortField {data} />
|
|
40
|
-
<Sorter sortByField="nestedData.uuid" bind:sortedData bind:activeCommonSortField {data} />
|
|
41
|
-
</div>
|
|
42
|
-
<Divider shadowed />
|
|
43
|
-
<List selectorField="id" data={[...sortedData]} />
|
|
44
|
-
</div>
|
|
45
|
-
<div class="flex-h gap-small">
|
|
46
|
-
<div class="pad">
|
|
47
|
-
<h6>Code</h6>
|
|
48
|
-
single field<br />
|
|
49
|
-
mutiple field <br />
|
|
50
|
-
nested field <br />
|
|
51
|
-
</div>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
<h5>{'<Sorterer />'}</h5>
|
|
55
|
-
<div>
|
|
56
|
-
<Sorterer
|
|
57
|
-
bind:sortedData
|
|
58
|
-
fields={[{ sortByField: 'name' }, { sortByField: 'directory' }]}
|
|
59
|
-
{data}>With a title :</Sorterer
|
|
60
|
-
>
|
|
61
|
-
</div>
|
|
62
|
-
</ComponentDemo>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Divider from '../../base/divider/Divider.svelte';
|
|
3
|
+
import List from '../list/List.svelte';
|
|
4
|
+
import ComponentDemo from '../../base/demoer/DemoerComponent.svelte';
|
|
5
|
+
import Sorter from './Sorter.svelte';
|
|
6
|
+
import Sorterer from './Sorterer.svelte';
|
|
7
|
+
|
|
8
|
+
const data = [...Array(5)].map((r, i) => {
|
|
9
|
+
return {
|
|
10
|
+
id: i,
|
|
11
|
+
name: 'surname ' + i,
|
|
12
|
+
directory: ((prop: any) => 'dir-' + (i % 4) + prop)(i),
|
|
13
|
+
nestedData: {
|
|
14
|
+
uuid: crypto?.randomUUID() ?? i
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
let sortedData: any[] = [];
|
|
20
|
+
let activeCommonSortField = '';
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<ComponentDemo
|
|
24
|
+
component="Sorter"
|
|
25
|
+
cite="Then, what was before became the after.<br /> R. Hakran, 824"
|
|
26
|
+
>
|
|
27
|
+
<h5>Button mode</h5>
|
|
28
|
+
<div class="flex-h gap-small">
|
|
29
|
+
<div>
|
|
30
|
+
<div class="flex-h gap-small">
|
|
31
|
+
<Sorter
|
|
32
|
+
sortByOrder="asc"
|
|
33
|
+
sortByField="id"
|
|
34
|
+
bind:sortedData
|
|
35
|
+
bind:activeCommonSortField
|
|
36
|
+
{data}
|
|
37
|
+
/>
|
|
38
|
+
<Sorter sortByField="name" bind:sortedData bind:activeCommonSortField {data} />
|
|
39
|
+
<Sorter sortByField="directory" bind:sortedData bind:activeCommonSortField {data} />
|
|
40
|
+
<Sorter sortByField="nestedData.uuid" bind:sortedData bind:activeCommonSortField {data} />
|
|
41
|
+
</div>
|
|
42
|
+
<Divider shadowed />
|
|
43
|
+
<List selectorField="id" data={[...sortedData]} />
|
|
44
|
+
</div>
|
|
45
|
+
<div class="flex-h gap-small">
|
|
46
|
+
<div class="pad">
|
|
47
|
+
<h6>Code</h6>
|
|
48
|
+
single field<br />
|
|
49
|
+
mutiple field <br />
|
|
50
|
+
nested field <br />
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<h5>{'<Sorterer />'}</h5>
|
|
55
|
+
<div>
|
|
56
|
+
<Sorterer
|
|
57
|
+
bind:sortedData
|
|
58
|
+
fields={[{ sortByField: 'name' }, { sortByField: 'directory' }]}
|
|
59
|
+
{data}>With a title :</Sorterer
|
|
60
|
+
>
|
|
61
|
+
</div>
|
|
62
|
+
</ComponentDemo>
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Button from '../../controls/button/Button.svelte';
|
|
3
|
-
import type { ExpandProps } from '../../types/index.js';
|
|
4
|
-
import { dataOp } from '../../utils/engine/utils.js';
|
|
5
|
-
import Slotted from '../../utils/slotted/Slotted.svelte';
|
|
6
|
-
import type { SorterProps } from './types.js';
|
|
7
|
-
|
|
8
|
-
const sortState: string[] = ['none', 'asc', 'desc'];
|
|
9
|
-
const icons = {
|
|
10
|
-
default: ['dots-horizontal', 'sort-bool-ascending', 'sort-bool-descending']
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
let {
|
|
14
|
-
data = [],
|
|
15
|
-
sortedData = $bindable(data),
|
|
16
|
-
sortByField,
|
|
17
|
-
sortByTitleField,
|
|
18
|
-
sortByOrder = 'none',
|
|
19
|
-
activeCommonSortField = $bindable(''),
|
|
20
|
-
sorterMode = 'button',
|
|
21
|
-
children,
|
|
22
|
-
sortListItems,
|
|
23
|
-
...rest
|
|
24
|
-
}: ExpandProps<SorterProps> = $props();
|
|
25
|
-
|
|
26
|
-
$effect(() => {
|
|
27
|
-
if (Boolean(activeCommonSortField) && activeCommonSortField !== sortByField) {
|
|
28
|
-
sortByOrder = 'none';
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
function doSort(field: string, order: 'asc' | 'desc' | 'none' | string) {
|
|
33
|
-
activeCommonSortField = field;
|
|
34
|
-
sortByOrder = order;
|
|
35
|
-
if (order === 'none') {
|
|
36
|
-
sortedData = data;
|
|
37
|
-
} else {
|
|
38
|
-
sortedData = dataOp.sortBy(data, field, order);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
</script>
|
|
42
|
-
|
|
43
|
-
<div {...rest}>
|
|
44
|
-
{#if sorterMode === 'button'}
|
|
45
|
-
<Button
|
|
46
|
-
onclick={() => {
|
|
47
|
-
const next = sortState.indexOf(sortByOrder) + 1;
|
|
48
|
-
let toggleOrder = sortState?.[next] ? sortState[next] : sortState[0];
|
|
49
|
-
if (sortByField) doSort(sortByField, toggleOrder);
|
|
50
|
-
}}
|
|
51
|
-
value={sortByTitleField ?? sortByField}
|
|
52
|
-
icon={'mdi' + icons.default[sortState.indexOf(sortByOrder)]}
|
|
53
|
-
variant="naked"
|
|
54
|
-
selected={sortByOrder !== 'none' && activeCommonSortField === sortByField}
|
|
55
|
-
width="auto"
|
|
56
|
-
showChip={sortByOrder !== 'none' && activeCommonSortField === sortByField}
|
|
57
|
-
/>
|
|
58
|
-
{/if}
|
|
59
|
-
{#if sorterMode === 'menu'}
|
|
60
|
-
<Button
|
|
61
|
-
onclick={() => {
|
|
62
|
-
if (sortByField) doSort(sortByField, 'desc');
|
|
63
|
-
}}
|
|
64
|
-
icon="mdi:sort-bool-descending"
|
|
65
|
-
/>
|
|
66
|
-
{/if}
|
|
67
|
-
<!-- // button name + asc/desc -->
|
|
68
|
-
<!-- // button menu with all data minus objects + asc/desc -->
|
|
69
|
-
<Slotted
|
|
70
|
-
child={children}
|
|
71
|
-
slotArgs={{
|
|
72
|
-
primary: sortByTitleField ?? sortByField,
|
|
73
|
-
icon: 'mdi:' + icons.default[sortState.indexOf(sortByOrder)],
|
|
74
|
-
naked: true,
|
|
75
|
-
selected: sortByOrder !== 'none' && activeCommonSortField === sortByField,
|
|
76
|
-
size: 'auto',
|
|
77
|
-
showChip: sortByOrder !== 'none' && activeCommonSortField === sortByField
|
|
78
|
-
}}
|
|
79
|
-
></Slotted>
|
|
80
|
-
</div>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Button from '../../controls/button/Button.svelte';
|
|
3
|
+
import type { ExpandProps } from '../../types/index.js';
|
|
4
|
+
import { dataOp } from '../../utils/engine/utils.js';
|
|
5
|
+
import Slotted from '../../utils/slotted/Slotted.svelte';
|
|
6
|
+
import type { SorterProps } from './types.js';
|
|
7
|
+
|
|
8
|
+
const sortState: string[] = ['none', 'asc', 'desc'];
|
|
9
|
+
const icons = {
|
|
10
|
+
default: ['dots-horizontal', 'sort-bool-ascending', 'sort-bool-descending']
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
let {
|
|
14
|
+
data = [],
|
|
15
|
+
sortedData = $bindable(data),
|
|
16
|
+
sortByField,
|
|
17
|
+
sortByTitleField,
|
|
18
|
+
sortByOrder = 'none',
|
|
19
|
+
activeCommonSortField = $bindable(''),
|
|
20
|
+
sorterMode = 'button',
|
|
21
|
+
children,
|
|
22
|
+
sortListItems,
|
|
23
|
+
...rest
|
|
24
|
+
}: ExpandProps<SorterProps> = $props();
|
|
25
|
+
|
|
26
|
+
$effect(() => {
|
|
27
|
+
if (Boolean(activeCommonSortField) && activeCommonSortField !== sortByField) {
|
|
28
|
+
sortByOrder = 'none';
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
function doSort(field: string, order: 'asc' | 'desc' | 'none' | string) {
|
|
33
|
+
activeCommonSortField = field;
|
|
34
|
+
sortByOrder = order;
|
|
35
|
+
if (order === 'none') {
|
|
36
|
+
sortedData = data;
|
|
37
|
+
} else {
|
|
38
|
+
sortedData = dataOp.sortBy(data, field, order);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
</script>
|
|
42
|
+
|
|
43
|
+
<div {...rest}>
|
|
44
|
+
{#if sorterMode === 'button'}
|
|
45
|
+
<Button
|
|
46
|
+
onclick={() => {
|
|
47
|
+
const next = sortState.indexOf(sortByOrder) + 1;
|
|
48
|
+
let toggleOrder = sortState?.[next] ? sortState[next] : sortState[0];
|
|
49
|
+
if (sortByField) doSort(sortByField, toggleOrder);
|
|
50
|
+
}}
|
|
51
|
+
value={sortByTitleField ?? sortByField}
|
|
52
|
+
icon={'mdi' + icons.default[sortState.indexOf(sortByOrder)]}
|
|
53
|
+
variant="naked"
|
|
54
|
+
selected={sortByOrder !== 'none' && activeCommonSortField === sortByField}
|
|
55
|
+
width="auto"
|
|
56
|
+
showChip={sortByOrder !== 'none' && activeCommonSortField === sortByField}
|
|
57
|
+
/>
|
|
58
|
+
{/if}
|
|
59
|
+
{#if sorterMode === 'menu'}
|
|
60
|
+
<Button
|
|
61
|
+
onclick={() => {
|
|
62
|
+
if (sortByField) doSort(sortByField, 'desc');
|
|
63
|
+
}}
|
|
64
|
+
icon="mdi:sort-bool-descending"
|
|
65
|
+
/>
|
|
66
|
+
{/if}
|
|
67
|
+
<!-- // button name + asc/desc -->
|
|
68
|
+
<!-- // button menu with all data minus objects + asc/desc -->
|
|
69
|
+
<Slotted
|
|
70
|
+
child={children}
|
|
71
|
+
slotArgs={{
|
|
72
|
+
primary: sortByTitleField ?? sortByField,
|
|
73
|
+
icon: 'mdi:' + icons.default[sortState.indexOf(sortByOrder)],
|
|
74
|
+
naked: true,
|
|
75
|
+
selected: sortByOrder !== 'none' && activeCommonSortField === sortByField,
|
|
76
|
+
size: 'auto',
|
|
77
|
+
showChip: sortByOrder !== 'none' && activeCommonSortField === sortByField
|
|
78
|
+
}}
|
|
79
|
+
></Slotted>
|
|
80
|
+
</div>
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import Slotted from '../../utils/slotted/Slotted.svelte';
|
|
3
|
-
import Sorter from './Sorter.svelte';
|
|
4
|
-
import type { SortererProps } from './types.js';
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
class: className = '',
|
|
8
|
-
element = $bindable(),
|
|
9
|
-
style = '',
|
|
10
|
-
data = [],
|
|
11
|
-
sortedData = $bindable(data),
|
|
12
|
-
onSort = () => {},
|
|
13
|
-
fields = [],
|
|
14
|
-
activeCommonSortField = '',
|
|
15
|
-
children,
|
|
16
|
-
...rest
|
|
17
|
-
}: SortererProps = $props();
|
|
18
|
-
</script>
|
|
19
|
-
|
|
20
|
-
<div bind:this={element} class="sorterer {className}" {...rest}>
|
|
21
|
-
<Slotted child={children}></Slotted>
|
|
22
|
-
{#each fields as field}
|
|
23
|
-
<Sorter {...field} bind:sortedData bind:activeCommonSortField {data} />
|
|
24
|
-
{/each}
|
|
25
|
-
</div>
|
|
26
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Slotted from '../../utils/slotted/Slotted.svelte';
|
|
3
|
+
import Sorter from './Sorter.svelte';
|
|
4
|
+
import type { SortererProps } from './types.js';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
class: className = '',
|
|
8
|
+
element = $bindable(),
|
|
9
|
+
style = '',
|
|
10
|
+
data = [],
|
|
11
|
+
sortedData = $bindable(data),
|
|
12
|
+
onSort = () => {},
|
|
13
|
+
fields = [],
|
|
14
|
+
activeCommonSortField = '',
|
|
15
|
+
children,
|
|
16
|
+
...rest
|
|
17
|
+
}: SortererProps = $props();
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<div bind:this={element} class="sorterer {className}" {...rest}>
|
|
21
|
+
<Slotted child={children}></Slotted>
|
|
22
|
+
{#each fields as field}
|
|
23
|
+
<Sorter {...field} bind:sortedData bind:activeCommonSortField {data} />
|
|
24
|
+
{/each}
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
27
|
<style>:root {
|
|
28
28
|
--sorterer-gap: var(--sld-gap-tiny);
|
|
29
29
|
}
|
|
@@ -34,4 +34,4 @@
|
|
|
34
34
|
flex-direction: row;
|
|
35
35
|
align-items: center;
|
|
36
36
|
gap: var(--sorterer-gap);
|
|
37
|
-
}</style>
|
|
37
|
+
}</style>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
@use "../../styles/slotui-mixins.scss";
|
|
2
|
-
|
|
3
|
-
:root {
|
|
4
|
-
--sorterer-gap: var(--sld-gap-tiny);
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.sorterer {
|
|
8
|
-
cursor: pointer;
|
|
9
|
-
@include slotui-mixins.flex(row, center);
|
|
10
|
-
gap: var(--sorterer-gap);
|
|
11
|
-
}
|
|
1
|
+
@use "../../styles/slotui-mixins.scss";
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--sorterer-gap: var(--sld-gap-tiny);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.sorterer {
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
@include slotui-mixins.flex(row, center);
|
|
10
|
+
gap: var(--sorterer-gap);
|
|
11
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -117,11 +117,9 @@ export * from './utils/uses/draggabler.js';
|
|
|
117
117
|
export * from './utils/stylesheet/utils.js';
|
|
118
118
|
export * from './utils/stylesheet/types.js';
|
|
119
119
|
export { default as StyleSheet } from './utils/stylesheet/StyleSheet.svelte';
|
|
120
|
+
export { default as Slotted } from './utils/slotted/Slotted.svelte';
|
|
120
121
|
export * from './utils/looper/types.js';
|
|
121
122
|
export { default as Looper } from './utils/looper/Looper.svelte';
|
|
122
|
-
export { default as Css } from './utils/css/Css.svelte';
|
|
123
|
-
export { default as Slotted } from './utils/slotted/Slotted.svelte';
|
|
124
|
-
export { default as ContextRooter } from './utils/contextRooter/ContextRooter.svelte';
|
|
125
123
|
export * from './utils/engine/wactions.utils.js';
|
|
126
124
|
export * from './utils/engine/utils.js';
|
|
127
125
|
export * from './utils/engine/stator.js';
|
|
@@ -129,62 +127,65 @@ export * from './utils/engine/site.utils.js';
|
|
|
129
127
|
export * from './utils/engine/presets.js';
|
|
130
128
|
export * from './utils/engine/engine.js';
|
|
131
129
|
export * from './utils/engine/elem.js';
|
|
130
|
+
export * from './utils/effects/transitions.js';
|
|
131
|
+
export { default as Css } from './utils/css/Css.svelte';
|
|
132
|
+
export { default as ContextRooter } from './utils/contextRooter/ContextRooter.svelte';
|
|
132
133
|
export * from './utils/content/types.js';
|
|
133
134
|
export { default as Content } from './utils/content/Content.svelte';
|
|
134
|
-
export * from './utils/effects/transitions.js';
|
|
135
|
-
export { default as Window } from './ui/window/Window.svelte';
|
|
136
135
|
export * from './ui/window/types.js';
|
|
137
136
|
export * from './ui/window/store.js';
|
|
138
137
|
export * from './ui/window/actions.svelte.js';
|
|
138
|
+
export { default as Window } from './ui/window/Window.svelte';
|
|
139
|
+
export * from './ui/tree/types.js';
|
|
140
|
+
export * from './ui/tree/tree.utils.js';
|
|
141
|
+
export { default as Tree } from './ui/tree/Tree.svelte';
|
|
139
142
|
export * from './ui/toolBar/types.js';
|
|
140
143
|
export { default as ToolBar } from './ui/toolBar/ToolBar.svelte';
|
|
141
144
|
export * from './ui/toggleBar/types.js';
|
|
142
145
|
export { default as ToggleBar } from './ui/toggleBar/ToggleBar.svelte';
|
|
143
|
-
export * from './ui/tree/types.js';
|
|
144
|
-
export * from './ui/tree/tree.utils.js';
|
|
145
|
-
export { default as Tree } from './ui/tree/Tree.svelte';
|
|
146
146
|
export * from './ui/toast/types.js';
|
|
147
|
+
export * from './ui/toast/store.js';
|
|
147
148
|
export { default as Toaster } from './ui/toast/Toaster.svelte';
|
|
148
149
|
export { default as Toast } from './ui/toast/Toast.svelte';
|
|
149
|
-
export * from './ui/toast/store.js';
|
|
150
150
|
export { default as ThemeSwitcher } from './ui/themeswitcher/ThemeSwitcher.svelte';
|
|
151
|
+
export * from './ui/taskbar/types.js';
|
|
152
|
+
export { default as Taskbar } from './ui/taskbar/Taskbar.svelte';
|
|
153
|
+
export { default as TaskBarContent } from './ui/taskbar/TaskBarContent.svelte';
|
|
151
154
|
export { default as BootMenu } from './ui/startMenu/BootMenu.svelte';
|
|
152
155
|
export { default as ServiceBox } from './ui/serviceBox/ServiceBox.svelte';
|
|
153
156
|
export * from './ui/preview/types.js';
|
|
157
|
+
export { default as Preview } from './ui/preview/Preview.svelte';
|
|
158
|
+
export * from './ui/popper/usePopper.js';
|
|
159
|
+
export * from './ui/popper/types.js';
|
|
160
|
+
export * from './ui/popper/actions.js';
|
|
161
|
+
export { default as Popper } from './ui/popper/Popper.svelte';
|
|
154
162
|
export * from './ui/panel/types.js';
|
|
163
|
+
export { default as Paneler } from './ui/panel/Paneler.svelte';
|
|
155
164
|
export { default as PanelSlide } from './ui/panel/PanelSlide.svelte';
|
|
156
165
|
export { default as PanelGrid } from './ui/panel/PanelGrid.svelte';
|
|
157
|
-
export { default as Paneler } from './ui/panel/Paneler.svelte';
|
|
158
166
|
export { default as Panel } from './ui/panel/Panel.svelte';
|
|
159
167
|
export * from './ui/menuList/types.js';
|
|
160
168
|
export { default as MenuListTitle } from './ui/menuList/MenuListTitle.svelte';
|
|
161
169
|
export { default as MenuListItem } from './ui/menuList/MenuListItem.svelte';
|
|
162
170
|
export { default as MenuList } from './ui/menuList/MenuList.svelte';
|
|
163
|
-
export * from './ui/taskbar/types.js';
|
|
164
|
-
export { default as TaskBarContent } from './ui/taskbar/TaskBarContent.svelte';
|
|
165
|
-
export { default as Taskbar } from './ui/taskbar/Taskbar.svelte';
|
|
166
171
|
export * from './ui/menu/types.js';
|
|
167
172
|
export { default as MenuTitle } from './ui/menu/MenuTitle.svelte';
|
|
168
173
|
export { default as MenuItem } from './ui/menu/MenuItem.svelte';
|
|
169
174
|
export { default as Menu } from './ui/menu/Menu.svelte';
|
|
170
175
|
export * from './ui/marquee/types.js';
|
|
171
176
|
export { default as Marquee } from './ui/marquee/Marquee.svelte';
|
|
172
|
-
export * from './ui/popper/usePopper.js';
|
|
173
|
-
export * from './ui/popper/types.js';
|
|
174
|
-
export { default as Popper } from './ui/popper/Popper.svelte';
|
|
175
|
-
export * from './ui/popper/actions.js';
|
|
176
177
|
export * from './ui/login/types.js';
|
|
177
178
|
export * from './ui/login/store.js';
|
|
178
179
|
export { default as Login } from './ui/login/Login.svelte';
|
|
179
180
|
export * from './ui/frame/types.js';
|
|
180
181
|
export { default as Frame } from './ui/frame/Frame.svelte';
|
|
181
|
-
export { default as BootStrApp } from './ui/bootstrapp/BootStrApp.svelte';
|
|
182
182
|
export * from './ui/chromeFrame/types.js';
|
|
183
|
+
export * from './ui/chromeFrame/chromeFrame.utils.js';
|
|
184
|
+
export * from './ui/chromeFrame/chromeFrame.store.js';
|
|
183
185
|
export { default as ChromeFrameList } from './ui/chromeFrame/ChromeFrameList.svelte';
|
|
184
186
|
export { default as ChromeFrameButtonList } from './ui/chromeFrame/ChromeFrameButtonList.svelte';
|
|
185
|
-
export * from './ui/chromeFrame/chromeFrame.utils.js';
|
|
186
187
|
export { default as ChromeFrame } from './ui/chromeFrame/ChromeFrame.svelte';
|
|
187
|
-
export
|
|
188
|
+
export { default as BootStrApp } from './ui/bootstrapp/BootStrApp.svelte';
|
|
188
189
|
export * from './styles/slotuisheet/utils.js';
|
|
189
190
|
export * from './styles/slotuisheet/types.js';
|
|
190
191
|
export { default as SlotuiSheet } from './styles/slotuisheet/SlotuiSheet.svelte';
|
|
@@ -217,55 +218,57 @@ export * from './base/paper/type.js';
|
|
|
217
218
|
export { default as Paper } from './base/paper/Paper.svelte';
|
|
218
219
|
export * from './base/icon/types.js';
|
|
219
220
|
export { default as Icon } from './base/icon/Icon.svelte';
|
|
220
|
-
export
|
|
221
|
+
export * from './base/divider/types.js';
|
|
222
|
+
export { default as Divider } from './base/divider/Divider.svelte';
|
|
221
223
|
export * from './base/demoer/types.js';
|
|
222
|
-
export
|
|
224
|
+
export * from './base/demoer/demoer.utils.js';
|
|
223
225
|
export { default as DemoerComponent } from './base/demoer/DemoerComponent.svelte';
|
|
224
226
|
export { default as DemoerCode } from './base/demoer/DemoerCode.svelte';
|
|
225
|
-
export * from './base/demoer/demoer.utils.js';
|
|
226
227
|
export { default as Demoer } from './base/demoer/Demoer.svelte';
|
|
227
|
-
export
|
|
228
|
-
export { default as
|
|
228
|
+
export { default as DemoPage } from './base/demoer/DemoPage.svelte';
|
|
229
|
+
export { default as Debug } from './base/debug/Debug.svelte';
|
|
229
230
|
export * from './base/contentSwitcher/useContentSwitcher.js';
|
|
230
231
|
export * from './base/contentSwitcher/types.js';
|
|
231
232
|
export { default as ContentSwitcher } from './base/contentSwitcher/ContentSwitcher.svelte';
|
|
232
|
-
export * from './base/breadCrumb/types.js';
|
|
233
|
-
export { default as BreadCrumb } from './base/breadCrumb/BreadCrumb.svelte';
|
|
234
|
-
export * from './base/cartouche/types.js';
|
|
235
|
-
export { default as Cartouche } from './base/cartouche/Cartouche.svelte';
|
|
236
233
|
export * from './base/columner/types.js';
|
|
237
234
|
export { default as Columner } from './base/columner/Columner.svelte';
|
|
238
235
|
export { default as Column } from './base/columner/Column.svelte';
|
|
239
236
|
export * from './base/chipper/types.js';
|
|
240
237
|
export { default as Chipper } from './base/chipper/Chipper.svelte';
|
|
238
|
+
export * from './base/cartouche/types.js';
|
|
239
|
+
export { default as Cartouche } from './base/cartouche/Cartouche.svelte';
|
|
240
|
+
export * from './base/breadCrumb/types.js';
|
|
241
|
+
export { default as BreadCrumb } from './base/breadCrumb/BreadCrumb.svelte';
|
|
241
242
|
export * from './base/box/types.js';
|
|
242
243
|
export { default as Box } from './base/box/Box.svelte';
|
|
243
244
|
export * from './base/badge/types.js';
|
|
244
245
|
export { default as Badge } from './base/badge/Badge.svelte';
|
|
245
|
-
export * from './base/avatar/types.js';
|
|
246
|
-
export { default as Avatar } from './base/avatar/Avatar.svelte';
|
|
247
246
|
export * from './base/backdrop/useBackDrop.js';
|
|
248
247
|
export * from './base/backdrop/types.js';
|
|
249
248
|
export { default as Backdrop } from './base/backdrop/Backdrop.svelte';
|
|
249
|
+
export * from './base/avatar/types.js';
|
|
250
|
+
export { default as Avatar } from './base/avatar/Avatar.svelte';
|
|
250
251
|
export * from './base/alert/types.js';
|
|
251
252
|
export { default as Alert } from './base/alert/Alert.svelte';
|
|
252
|
-
export * from './controls/textfield/types.js';
|
|
253
|
-
export { default as TextField } from './controls/textfield/TextField.svelte';
|
|
254
253
|
export * from './controls/switch/types.js';
|
|
255
254
|
export { default as Switch } from './controls/switch/Switch.svelte';
|
|
255
|
+
export * from './controls/textfield/types.js';
|
|
256
|
+
export { default as TextField } from './controls/textfield/TextField.svelte';
|
|
256
257
|
export * from './controls/stepper/types.js';
|
|
257
258
|
export { default as Stepper } from './controls/stepper/Stepper.svelte';
|
|
258
|
-
export { default as Select } from './controls/select/Select.svelte';
|
|
259
259
|
export * from './controls/slider/types.js';
|
|
260
260
|
export { default as Slider } from './controls/slider/Slider.svelte';
|
|
261
|
+
export { default as Select } from './controls/select/Select.svelte';
|
|
262
|
+
export * from './controls/rating/types.js';
|
|
263
|
+
export { default as Rating } from './controls/rating/Rating.svelte';
|
|
264
|
+
export * from './controls/progress/types.js';
|
|
265
|
+
export { default as Progress } from './controls/progress/Progress.svelte';
|
|
261
266
|
export * from './controls/inplaceedit/types.js';
|
|
262
267
|
export { default as InPlaceEdit } from './controls/inplaceedit/InPlaceEdit.svelte';
|
|
263
268
|
export * from './controls/confirm/types.js';
|
|
264
269
|
export { default as Confirm } from './controls/confirm/Confirm.svelte';
|
|
265
270
|
export * from './controls/checkbox/types.js';
|
|
266
271
|
export { default as Checkbox } from './controls/checkbox/Checkbox.svelte';
|
|
267
|
-
export * from './controls/rating/types.js';
|
|
268
|
-
export { default as Rating } from './controls/rating/Rating.svelte';
|
|
269
272
|
export * from './controls/button/types.js';
|
|
270
273
|
export { default as IconButton } from './controls/button/IconButton.svelte';
|
|
271
274
|
export { default as ButtonMenu } from './controls/button/ButtonMenu.svelte';
|
|
@@ -273,8 +276,6 @@ export { default as ButtonAction } from './controls/button/ButtonAction.svelte';
|
|
|
273
276
|
export { default as Button } from './controls/button/Button.svelte';
|
|
274
277
|
export * from './controls/autocomplete/types.js';
|
|
275
278
|
export { default as AutoComplete } from './controls/autocomplete/AutoComplete.svelte';
|
|
276
|
-
export * from './controls/progress/types.js';
|
|
277
|
-
export { default as Progress } from './controls/progress/Progress.svelte';
|
|
278
279
|
export * from './utils/uses/sx4u/sx4uPreprocess.js';
|
|
279
280
|
export * from './utils/uses/sx4u/sx4u.js';
|
|
280
281
|
export * from './utils/uses/stickTo/stickTo.js';
|