framework7-svelte 8.3.4 → 9.0.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/components/accordion-content.d.ts +11 -5
- package/components/accordion-content.svelte +8 -6
- package/components/accordion-item.d.ts +23 -11
- package/components/accordion-item.svelte +27 -25
- package/components/accordion-toggle.d.ts +11 -5
- package/components/accordion-toggle.svelte +8 -6
- package/components/accordion.d.ts +11 -5
- package/components/accordion.svelte +11 -10
- package/components/actions-button.d.ts +14 -6
- package/components/actions-button.svelte +21 -19
- package/components/actions-group.d.ts +11 -5
- package/components/actions-group.svelte +4 -7
- package/components/actions-label.d.ts +11 -5
- package/components/actions-label.svelte +13 -23
- package/components/actions.d.ts +31 -21
- package/components/actions.svelte +50 -54
- package/components/app.d.ts +11 -5
- package/components/app.svelte +6 -7
- package/components/area-chart.d.ts +13 -6
- package/components/area-chart.svelte +42 -46
- package/components/badge.d.ts +11 -5
- package/components/badge.svelte +10 -9
- package/components/block-footer.d.ts +11 -5
- package/components/block-footer.svelte +8 -6
- package/components/block-header.d.ts +11 -5
- package/components/block-header.svelte +8 -6
- package/components/block-title.d.ts +11 -5
- package/components/block-title.svelte +12 -10
- package/components/block.d.ts +11 -5
- package/components/block.svelte +76 -76
- package/components/breadcrumbs-collapsed.d.ts +12 -6
- package/components/breadcrumbs-collapsed.svelte +10 -15
- package/components/breadcrumbs-item.d.ts +12 -6
- package/components/breadcrumbs-item.svelte +9 -8
- package/components/breadcrumbs-separator.d.ts +10 -5
- package/components/breadcrumbs-separator.svelte +9 -5
- package/components/breadcrumbs.d.ts +11 -6
- package/components/breadcrumbs.svelte +8 -6
- package/components/button.d.ts +44 -37
- package/components/button.svelte +107 -103
- package/components/card-content.d.ts +11 -5
- package/components/card-content.svelte +11 -10
- package/components/card-footer.d.ts +11 -5
- package/components/card-footer.svelte +8 -6
- package/components/card-header.d.ts +11 -5
- package/components/card-header.svelte +8 -6
- package/components/card.d.ts +43 -31
- package/components/card.svelte +78 -67
- package/components/checkbox.d.ts +20 -13
- package/components/checkbox.svelte +32 -30
- package/components/chip.d.ts +22 -15
- package/components/chip.svelte +54 -60
- package/components/fab-backdrop.d.ts +10 -5
- package/components/fab-backdrop.svelte +5 -7
- package/components/fab-button.d.ts +17 -11
- package/components/fab-button.svelte +20 -29
- package/components/fab-buttons.d.ts +11 -5
- package/components/fab-buttons.svelte +5 -12
- package/components/fab.d.ts +22 -13
- package/components/fab.svelte +55 -51
- package/components/gauge.d.ts +24 -19
- package/components/gauge.svelte +25 -25
- package/components/icon.d.ts +19 -13
- package/components/icon.svelte +65 -63
- package/components/input.d.ts +78 -61
- package/components/input.svelte +171 -154
- package/components/link.d.ts +28 -21
- package/components/link.svelte +67 -65
- package/components/list-button.d.ts +22 -15
- package/components/list-button.svelte +56 -44
- package/components/list-group.d.ts +16 -10
- package/components/list-group.svelte +38 -34
- package/components/list-index.d.ts +20 -13
- package/components/list-index.svelte +23 -24
- package/components/list-input.d.ts +91 -64
- package/components/list-input.svelte +254 -205
- package/components/list-item.d.ts +98 -63
- package/components/list-item.svelte +412 -439
- package/components/list.d.ts +72 -54
- package/components/list.svelte +151 -147
- package/components/login-screen-title.d.ts +11 -5
- package/components/login-screen-title.svelte +4 -6
- package/components/login-screen.d.ts +20 -10
- package/components/login-screen.svelte +39 -42
- package/components/message.d.ts +48 -29
- package/components/message.svelte +123 -88
- package/components/messagebar-attachment.d.ts +17 -9
- package/components/messagebar-attachment.svelte +16 -18
- package/components/messagebar-attachments.d.ts +11 -5
- package/components/messagebar-attachments.svelte +6 -6
- package/components/messagebar-sheet-image.d.ts +19 -10
- package/components/messagebar-sheet-image.svelte +30 -22
- package/components/messagebar-sheet-item.d.ts +11 -5
- package/components/messagebar-sheet-item.svelte +4 -6
- package/components/messagebar-sheet.d.ts +11 -5
- package/components/messagebar-sheet.svelte +4 -6
- package/components/messagebar.d.ts +53 -31
- package/components/messagebar.svelte +100 -77
- package/components/messages-title.d.ts +11 -5
- package/components/messages-title.svelte +4 -6
- package/components/messages.d.ts +26 -20
- package/components/messages.svelte +32 -32
- package/components/nav-left.d.ts +19 -12
- package/components/nav-left.svelte +23 -39
- package/components/nav-right.d.ts +11 -6
- package/components/nav-right.svelte +4 -15
- package/components/nav-title-large.d.ts +11 -5
- package/components/nav-title-large.svelte +4 -6
- package/components/nav-title.d.ts +13 -8
- package/components/nav-title.svelte +25 -20
- package/components/navbar.d.ts +47 -28
- package/components/navbar.svelte +100 -111
- package/components/page-content.d.ts +41 -29
- package/components/page-content.svelte +58 -50
- package/components/page.d.ts +71 -46
- package/components/page.svelte +102 -82
- package/components/panel.d.ts +51 -35
- package/components/panel.svelte +94 -99
- package/components/photo-browser.d.ts +50 -41
- package/components/photo-browser.svelte +48 -47
- package/components/pie-chart.d.ts +13 -6
- package/components/pie-chart.svelte +29 -27
- package/components/popover.d.ts +28 -19
- package/components/popover.svelte +45 -48
- package/components/popup.d.ts +37 -23
- package/components/popup.svelte +68 -57
- package/components/preloader.d.ts +10 -5
- package/components/preloader.svelte +30 -31
- package/components/progressbar.d.ts +11 -6
- package/components/progressbar.svelte +13 -17
- package/components/radio.d.ts +19 -12
- package/components/radio.svelte +19 -23
- package/components/range.d.ts +35 -27
- package/components/range.svelte +47 -44
- package/components/routable-modals.d.ts +9 -4
- package/components/routable-modals.svelte +9 -8
- package/components/router-context-provider.d.ts +11 -6
- package/components/router-context-provider.svelte +2 -4
- package/components/searchbar.d.ts +60 -43
- package/components/searchbar.svelte +115 -104
- package/components/segmented.d.ts +21 -15
- package/components/segmented.svelte +38 -35
- package/components/sheet.d.ts +47 -30
- package/components/sheet.svelte +94 -76
- package/components/snippet-render.d.ts +24 -0
- package/components/snippet-render.svelte +9 -0
- package/components/stepper.d.ts +53 -43
- package/components/stepper.svelte +83 -79
- package/components/subnavbar.d.ts +13 -8
- package/components/subnavbar.svelte +12 -20
- package/components/swipeout-actions.d.ts +14 -8
- package/components/swipeout-actions.svelte +14 -13
- package/components/swipeout-button.d.ts +20 -13
- package/components/swipeout-button.svelte +31 -31
- package/components/tab.d.ts +14 -8
- package/components/tab.svelte +20 -28
- package/components/tabs.d.ts +15 -9
- package/components/tabs.svelte +27 -26
- package/components/text-editor.d.ts +44 -24
- package/components/text-editor.svelte +56 -41
- package/components/toggle.d.ts +22 -15
- package/components/toggle.svelte +33 -37
- package/components/toolbar-pane.d.ts +24 -0
- package/components/toolbar-pane.svelte +14 -0
- package/components/toolbar.d.ts +30 -20
- package/components/toolbar.svelte +61 -53
- package/components/treeview-item.d.ts +36 -17
- package/components/treeview-item.svelte +101 -81
- package/components/treeview.d.ts +11 -5
- package/components/treeview.svelte +4 -6
- package/components/use-icon.d.ts +9 -4
- package/components/use-icon.svelte +1 -1
- package/components/view.d.ts +76 -65
- package/components/view.svelte +66 -48
- package/components/views.d.ts +11 -5
- package/components/views.svelte +12 -15
- package/framework7-svelte.d.ts +3 -1
- package/framework7-svelte.js +6 -4
- package/package.json +2 -2
- package/shared/components-router.js +28 -25
- package/shared/f7.js +1 -7
- package/shared/mixins.js +5 -5
- package/shared/modal-state-classes.js +4 -5
- package/shared/plugin.js +1 -4
- package/shared/rest-props.js +1 -4
- package/shared/use-icon.js +2 -5
- package/shared/use-store.js +9 -9
- package/shared/use-tab.js +3 -3
- package/shared/use-tooltip.js +3 -4
- package/shared/utils.js +2 -8
- package/shared/get-reactive-context.js +0 -16
- package/shared/list-context.js +0 -10
- package/shared/router-context.js +0 -8
- package/shared/set-reactive-context.js +0 -26
package/components/panel.svelte
CHANGED
|
@@ -1,76 +1,72 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { onMount, onDestroy
|
|
3
|
-
import { restProps } from '../shared/rest-props.js';
|
|
2
|
+
import { onMount, onDestroy } from 'svelte';
|
|
4
3
|
import { colorClasses } from '../shared/mixins.js';
|
|
5
|
-
import { classNames, noUndefinedProps
|
|
4
|
+
import { classNames, noUndefinedProps } from '../shared/utils.js';
|
|
6
5
|
import { app, f7ready } from '../shared/f7.js';
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let
|
|
40
|
-
let
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
isOpened: false,
|
|
44
|
-
isClosing: false,
|
|
45
|
-
isCollapsed: false,
|
|
46
|
-
isBreakpoint: false,
|
|
47
|
-
};
|
|
7
|
+
let {
|
|
8
|
+
class: className,
|
|
9
|
+
side = undefined,
|
|
10
|
+
effect: effectProp = undefined,
|
|
11
|
+
cover = false,
|
|
12
|
+
reveal = false,
|
|
13
|
+
push = false,
|
|
14
|
+
floating = false,
|
|
15
|
+
left = false,
|
|
16
|
+
right = false,
|
|
17
|
+
opened = false,
|
|
18
|
+
resizable = false,
|
|
19
|
+
backdrop = true,
|
|
20
|
+
backdropEl = undefined,
|
|
21
|
+
containerEl = undefined,
|
|
22
|
+
closeByBackdropClick = undefined,
|
|
23
|
+
visibleBreakpoint = undefined,
|
|
24
|
+
collapsedBreakpoint = undefined,
|
|
25
|
+
swipe = false,
|
|
26
|
+
swipeNoFollow = false,
|
|
27
|
+
swipeOnlyClose = false,
|
|
28
|
+
swipeActiveArea = 0,
|
|
29
|
+
swipeThreshold = 0,
|
|
30
|
+
f7Slot = 'fixed',
|
|
31
|
+
children,
|
|
32
|
+
...restProps
|
|
33
|
+
} = $props();
|
|
34
|
+
|
|
35
|
+
let el = $state(null);
|
|
36
|
+
let f7Panel = $state(null);
|
|
37
|
+
|
|
38
|
+
let isOpened = $state(false);
|
|
39
|
+
let isClosing = $state(false);
|
|
40
|
+
let isCollapsed = $state(false);
|
|
41
|
+
let isBreakpoint = $state(false);
|
|
48
42
|
|
|
49
43
|
export function instance() {
|
|
50
44
|
return f7Panel;
|
|
51
45
|
}
|
|
52
46
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
47
|
+
const sideComputed = $derived(side || (left ? 'left' : right ? 'right' : 'left'));
|
|
48
|
+
const effectComputed = $derived(
|
|
49
|
+
effectProp || (reveal ? 'reveal' : push ? 'push' : floating ? 'floating' : 'cover'),
|
|
50
|
+
);
|
|
51
|
+
const classes = $derived(
|
|
52
|
+
classNames(
|
|
53
|
+
className,
|
|
54
|
+
'panel',
|
|
55
|
+
{
|
|
56
|
+
'panel-in': isOpened && !isClosing && !isBreakpoint,
|
|
57
|
+
'panel-out': isClosing,
|
|
58
|
+
'panel-in-breakpoint': isBreakpoint,
|
|
59
|
+
'panel-in-collapsed': isCollapsed,
|
|
60
|
+
'panel-resizable': resizable,
|
|
61
|
+
[`panel-${sideComputed}`]: sideComputed,
|
|
62
|
+
[`panel-${effectComputed}`]: effectComputed,
|
|
63
|
+
},
|
|
64
|
+
colorClasses(restProps),
|
|
65
|
+
),
|
|
70
66
|
);
|
|
71
67
|
|
|
72
|
-
let resizableOld = resizable;
|
|
73
|
-
let initialWatchedResizable = false;
|
|
68
|
+
let resizableOld = $state(resizable);
|
|
69
|
+
let initialWatchedResizable = $state(false);
|
|
74
70
|
function watchResizable(r) {
|
|
75
71
|
if (!initialWatchedResizable) {
|
|
76
72
|
initialWatchedResizable = true;
|
|
@@ -83,10 +79,10 @@
|
|
|
83
79
|
}
|
|
84
80
|
resizableOld = r;
|
|
85
81
|
}
|
|
86
|
-
|
|
82
|
+
$effect(() => watchResizable(resizable));
|
|
87
83
|
|
|
88
|
-
let openedOld = opened;
|
|
89
|
-
let initialWatchedOpened = false;
|
|
84
|
+
let openedOld = $state(opened);
|
|
85
|
+
let initialWatchedOpened = $state(false);
|
|
90
86
|
function watchOpened(o) {
|
|
91
87
|
if (!initialWatchedOpened) {
|
|
92
88
|
initialWatchedOpened = true;
|
|
@@ -99,59 +95,58 @@
|
|
|
99
95
|
}
|
|
100
96
|
openedOld = o;
|
|
101
97
|
}
|
|
102
|
-
|
|
98
|
+
$effect(() => watchOpened(opened));
|
|
103
99
|
|
|
104
100
|
function onOpen(...args) {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
emit('panelOpen', args);
|
|
101
|
+
isOpened = true;
|
|
102
|
+
isClosing = false;
|
|
103
|
+
restProps.onPanelOpen?.(args);
|
|
104
|
+
restProps.onpanelopen?.(args);
|
|
111
105
|
opened = true;
|
|
112
106
|
}
|
|
113
107
|
function onOpened(...args) {
|
|
114
|
-
|
|
108
|
+
restProps.onPanelOpened?.(args);
|
|
109
|
+
restProps.onpanelopened?.(args);
|
|
115
110
|
}
|
|
116
111
|
function onClose(...args) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
emit('panelClose', args);
|
|
112
|
+
isOpened = false;
|
|
113
|
+
isClosing = true;
|
|
114
|
+
restProps.onPanelClose?.(args);
|
|
115
|
+
restProps.onpanelclose?.(args);
|
|
122
116
|
}
|
|
123
117
|
function onClosed(...args) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
emit('panelClosed', args);
|
|
118
|
+
isClosing = false;
|
|
119
|
+
restProps.onPanelClosed?.(args);
|
|
120
|
+
restProps.onpanelclosed?.(args);
|
|
128
121
|
opened = false;
|
|
129
122
|
}
|
|
130
123
|
function onBackdropClick(...args) {
|
|
131
|
-
|
|
124
|
+
restProps.onPanelBackdropClick?.(args);
|
|
125
|
+
restProps.onpanelbackdropclick?.(args);
|
|
132
126
|
}
|
|
133
127
|
function onSwipe(...args) {
|
|
134
|
-
|
|
128
|
+
restProps.onPanelSwipe?.(args);
|
|
129
|
+
restProps.onpanelswipe?.(args);
|
|
135
130
|
}
|
|
136
131
|
function onSwipeOpen(...args) {
|
|
137
|
-
|
|
132
|
+
restProps.onPanelSwipeOpen?.(args);
|
|
133
|
+
restProps.onpanelswipeopen?.(args);
|
|
138
134
|
}
|
|
139
135
|
function onBreakpoint(...args) {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
emit('panelBreakpoint', args);
|
|
136
|
+
isBreakpoint = true;
|
|
137
|
+
isCollapsed = false;
|
|
138
|
+
restProps.onPanelBreakpoint?.(args);
|
|
139
|
+
restProps.onpanelbreakpoint?.(args);
|
|
145
140
|
}
|
|
146
141
|
function onCollapsedBreakpoint(...args) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
emit('panelCollapsedBreakpoint', args);
|
|
142
|
+
isBreakpoint = false;
|
|
143
|
+
isCollapsed = true;
|
|
144
|
+
restProps.onPanelCollapsedBreakpoint?.(args);
|
|
145
|
+
restProps.onpanelcollapsedbreakpoint?.(args);
|
|
152
146
|
}
|
|
153
147
|
function onResize(...args) {
|
|
154
|
-
|
|
148
|
+
restProps.onPanelResize?.(args);
|
|
149
|
+
restProps.onpanelresize?.(args);
|
|
155
150
|
}
|
|
156
151
|
|
|
157
152
|
onMount(() => {
|
|
@@ -202,9 +197,9 @@
|
|
|
202
197
|
});
|
|
203
198
|
</script>
|
|
204
199
|
|
|
205
|
-
<div bind:this={el} class={classes} data-f7-slot={f7Slot} {...restProps
|
|
206
|
-
|
|
200
|
+
<div bind:this={el} class={classes} data-f7-slot={f7Slot} {...restProps}>
|
|
201
|
+
{@render children?.(f7Panel)}
|
|
207
202
|
{#if resizable}
|
|
208
|
-
<div class="panel-resize-handler"
|
|
203
|
+
<div class="panel-resize-handler"></div>
|
|
209
204
|
{/if}
|
|
210
205
|
</div>
|
|
@@ -1,56 +1,65 @@
|
|
|
1
1
|
|
|
2
|
-
import { SvelteComponent } from 'svelte';
|
|
2
|
+
import { SvelteComponent, Snippet } from 'svelte';
|
|
3
3
|
import { HTMLAttributes } from 'svelte/elements';
|
|
4
4
|
|
|
5
5
|
import { PhotoBrowser } from 'framework7/types';
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
interface
|
|
9
|
-
init
|
|
10
|
-
params
|
|
11
|
-
photos
|
|
12
|
-
thumbs
|
|
13
|
-
exposition
|
|
14
|
-
expositionHideCaptions
|
|
15
|
-
type
|
|
16
|
-
navbar
|
|
17
|
-
toolbar
|
|
18
|
-
theme
|
|
19
|
-
captionsTheme
|
|
20
|
-
iconsColor
|
|
21
|
-
swipeToClose
|
|
22
|
-
pageBackLinkText
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
renderStandalone ?: Function;
|
|
8
|
+
interface Props {
|
|
9
|
+
init?: boolean;
|
|
10
|
+
params?: Object;
|
|
11
|
+
photos?: Array<any>;
|
|
12
|
+
thumbs?: Array<any>;
|
|
13
|
+
exposition?: boolean;
|
|
14
|
+
expositionHideCaptions?: boolean;
|
|
15
|
+
type?: string;
|
|
16
|
+
navbar?: boolean;
|
|
17
|
+
toolbar?: boolean;
|
|
18
|
+
theme?: string;
|
|
19
|
+
captionsTheme?: string;
|
|
20
|
+
iconsColor?: string;
|
|
21
|
+
swipeToClose?: boolean;
|
|
22
|
+
pageBackLinkText?: string;
|
|
23
|
+
popupCloseLinkText?: string;
|
|
24
|
+
navbarOfText?: string;
|
|
25
|
+
navbarShowCount?: boolean;
|
|
26
|
+
swiper?: Object;
|
|
27
|
+
url?: string;
|
|
28
|
+
routableModals?: boolean;
|
|
29
|
+
virtualSlides?: boolean;
|
|
30
|
+
view?: string | object;
|
|
31
|
+
renderNavbar?: Function;
|
|
32
|
+
renderToolbar?: Function;
|
|
33
|
+
renderCaption?: Function;
|
|
34
|
+
renderObject?: Function;
|
|
35
|
+
renderLazyPhoto?: Function;
|
|
36
|
+
renderPhoto?: Function;
|
|
37
|
+
renderPage?: Function;
|
|
38
|
+
renderPopup?: Function;
|
|
39
|
+
renderStandalone?: Function;
|
|
41
40
|
renderThumb?: Function;
|
|
42
|
-
onPhotoBrowserOpen
|
|
43
|
-
onPhotoBrowserClose
|
|
44
|
-
onPhotoBrowserOpened
|
|
45
|
-
onPhotoBrowserClosed
|
|
46
|
-
onPhotoBrowserSwipeToClose
|
|
41
|
+
onPhotoBrowserOpen?: (...args: any[]) => void;
|
|
42
|
+
onPhotoBrowserClose?: (...args: any[]) => void;
|
|
43
|
+
onPhotoBrowserOpened?: (...args: any[]) => void;
|
|
44
|
+
onPhotoBrowserClosed?: (...args: any[]) => void;
|
|
45
|
+
onPhotoBrowserSwipeToClose?: (...args: any[]) => void;
|
|
46
|
+
onphotobrowseropen?: () => void;
|
|
47
|
+
onphotobrowserclose?: () => void;
|
|
48
|
+
onphotobrowseropened?: () => void;
|
|
49
|
+
onphotobrowserclosed?: () => void;
|
|
50
|
+
onphotobrowserswipetoclose?: () => void;
|
|
47
51
|
}
|
|
48
52
|
|
|
53
|
+
interface PhotoBrowserProps {}
|
|
54
|
+
interface PhotoBrowserProps extends Props {}
|
|
55
|
+
|
|
56
|
+
interface PhotoBrowserEvents extends Record<'',{}>{}
|
|
57
|
+
|
|
49
58
|
|
|
50
59
|
|
|
51
60
|
declare class PhotoBrowser extends SvelteComponent<
|
|
52
|
-
PhotoBrowserProps
|
|
53
|
-
|
|
61
|
+
PhotoBrowserProps,
|
|
62
|
+
PhotoBrowserEvents,
|
|
54
63
|
{ }
|
|
55
64
|
> {}
|
|
56
65
|
|
|
@@ -1,44 +1,42 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import {
|
|
2
|
+
import { onMount, onDestroy } from 'svelte';
|
|
3
3
|
|
|
4
|
-
import { extend
|
|
4
|
+
import { extend } from '../shared/utils.js';
|
|
5
5
|
import { app, f7ready } from '../shared/f7.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export let renderStandalone = undefined;
|
|
41
|
-
export let renderThumb = undefined;
|
|
6
|
+
let {
|
|
7
|
+
init = true,
|
|
8
|
+
params = undefined,
|
|
9
|
+
photos = undefined,
|
|
10
|
+
thumbs = undefined,
|
|
11
|
+
exposition = true,
|
|
12
|
+
expositionHideCaptions = false,
|
|
13
|
+
type = undefined,
|
|
14
|
+
navbar = true,
|
|
15
|
+
toolbar = true,
|
|
16
|
+
theme = undefined,
|
|
17
|
+
captionsTheme = undefined,
|
|
18
|
+
iconsColor = undefined,
|
|
19
|
+
swipeToClose = true,
|
|
20
|
+
pageBackLinkText = undefined,
|
|
21
|
+
navbarOfText = undefined,
|
|
22
|
+
navbarShowCount = undefined,
|
|
23
|
+
swiper = undefined,
|
|
24
|
+
url = undefined,
|
|
25
|
+
routableModals = false,
|
|
26
|
+
virtualSlides = true,
|
|
27
|
+
view = undefined,
|
|
28
|
+
renderNavbar = undefined,
|
|
29
|
+
renderToolbar = undefined,
|
|
30
|
+
renderCaption = undefined,
|
|
31
|
+
renderObject = undefined,
|
|
32
|
+
renderLazyPhoto = undefined,
|
|
33
|
+
renderPhoto = undefined,
|
|
34
|
+
renderPage = undefined,
|
|
35
|
+
renderPopup = undefined,
|
|
36
|
+
renderStandalone = undefined,
|
|
37
|
+
renderThumb = undefined,
|
|
38
|
+
...restProps
|
|
39
|
+
} = $props();
|
|
42
40
|
|
|
43
41
|
let f7PhotoBrowser;
|
|
44
42
|
|
|
@@ -62,7 +60,7 @@
|
|
|
62
60
|
return f7PhotoBrowser.expositionDisable();
|
|
63
61
|
}
|
|
64
62
|
|
|
65
|
-
let initialWatched = false;
|
|
63
|
+
let initialWatched = $state(false);
|
|
66
64
|
function watchPhotos(newValue) {
|
|
67
65
|
if (!initialWatched) {
|
|
68
66
|
initialWatched = true;
|
|
@@ -75,7 +73,7 @@
|
|
|
75
73
|
}
|
|
76
74
|
}
|
|
77
75
|
|
|
78
|
-
|
|
76
|
+
$effect(() => watchPhotos(photos));
|
|
79
77
|
|
|
80
78
|
onMount(() => {
|
|
81
79
|
if (!init) return;
|
|
@@ -97,8 +95,6 @@
|
|
|
97
95
|
iconsColor,
|
|
98
96
|
swipeToClose,
|
|
99
97
|
pageBackLinkText,
|
|
100
|
-
popupCloseLinkIcon,
|
|
101
|
-
popupCloseLinkText,
|
|
102
98
|
navbarOfText,
|
|
103
99
|
navbarShowCount,
|
|
104
100
|
swiper,
|
|
@@ -127,19 +123,24 @@
|
|
|
127
123
|
pbParams = extend({}, pbParams, {
|
|
128
124
|
on: {
|
|
129
125
|
open() {
|
|
130
|
-
|
|
126
|
+
restProps.onPhotoBrowserOpen?.();
|
|
127
|
+
restProps.onphotobrowseropen?.();
|
|
131
128
|
},
|
|
132
129
|
close() {
|
|
133
|
-
|
|
130
|
+
restProps.onPhotoBrowserClose?.();
|
|
131
|
+
restProps.onphotobrowserclose?.();
|
|
134
132
|
},
|
|
135
133
|
opened() {
|
|
136
|
-
|
|
134
|
+
restProps.onPhotoBrowserOpened?.();
|
|
135
|
+
restProps.onphotobrowseropened?.();
|
|
137
136
|
},
|
|
138
137
|
closed() {
|
|
139
|
-
|
|
138
|
+
restProps.onPhotoBrowserClosed?.();
|
|
139
|
+
restProps.onphotobrowserclosed?.();
|
|
140
140
|
},
|
|
141
141
|
swipeToClose() {
|
|
142
|
-
|
|
142
|
+
restProps.onPhotoBrowserSwipeToClose?.();
|
|
143
|
+
restProps.onphotobrowserswipetoclose?.();
|
|
143
144
|
},
|
|
144
145
|
},
|
|
145
146
|
});
|
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
|
|
2
|
-
import { SvelteComponent } from 'svelte';
|
|
2
|
+
import { SvelteComponent, Snippet } from 'svelte';
|
|
3
3
|
import { HTMLAttributes } from 'svelte/elements';
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
interface
|
|
6
|
+
interface Props {
|
|
7
7
|
size?: number;
|
|
8
8
|
tooltip?: boolean;
|
|
9
9
|
datasets?: {value: number; color?: string; label?: string}[];
|
|
10
10
|
formatTooltip?: (data: {index: number; value: number; label: string; color: string; percentage: number}) => void;
|
|
11
|
-
onSelect
|
|
11
|
+
onSelect?: (index: number | null, item: {value: number; label: string; color: string}) => void;
|
|
12
|
+
children?: Snippet;
|
|
13
|
+
onselect?: () => void;
|
|
12
14
|
}
|
|
13
15
|
|
|
16
|
+
interface PieChartProps {}
|
|
17
|
+
interface PieChartProps extends Props {}
|
|
18
|
+
|
|
19
|
+
interface PieChartEvents extends Record<'',{}>{}
|
|
20
|
+
|
|
14
21
|
|
|
15
22
|
|
|
16
23
|
declare class PieChart extends SvelteComponent<
|
|
17
|
-
PieChartProps
|
|
18
|
-
|
|
19
|
-
{
|
|
24
|
+
PieChartProps,
|
|
25
|
+
PieChartEvents,
|
|
26
|
+
{ }
|
|
20
27
|
> {}
|
|
21
28
|
|
|
22
29
|
export { PieChartProps };
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import {
|
|
3
|
-
import { classNames
|
|
4
|
-
import { restProps } from '../shared/rest-props.js';
|
|
2
|
+
import { onDestroy } from 'svelte';
|
|
3
|
+
import { classNames } from '../shared/utils.js';
|
|
5
4
|
import { app } from '../shared/f7.js';
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
let el;
|
|
18
|
-
let currentIndex = null;
|
|
19
|
-
let previousIndex = null;
|
|
6
|
+
let {
|
|
7
|
+
class: className,
|
|
8
|
+
size = 320,
|
|
9
|
+
tooltip = false,
|
|
10
|
+
datasets = [],
|
|
11
|
+
formatTooltip = undefined,
|
|
12
|
+
children,
|
|
13
|
+
...restProps
|
|
14
|
+
} = $props();
|
|
15
|
+
|
|
16
|
+
let el = $state(null);
|
|
17
|
+
let currentIndex = $state(null);
|
|
18
|
+
let previousIndex = $state(null);
|
|
20
19
|
let f7Tooltip = null;
|
|
21
|
-
let timeout = null;
|
|
20
|
+
let timeout = $state(null);
|
|
22
21
|
|
|
23
22
|
const setCurrentIndex = (index) => {
|
|
24
23
|
if (index === null) {
|
|
@@ -132,14 +131,15 @@
|
|
|
132
131
|
|
|
133
132
|
const watchCurrentIndex = () => {
|
|
134
133
|
if (currentIndex === previousIndex) return;
|
|
135
|
-
|
|
134
|
+
restProps.onSelect?.(currentIndex, datasets[currentIndex]);
|
|
135
|
+
restProps.onselect?.(currentIndex, datasets[currentIndex]);
|
|
136
136
|
setTooltip();
|
|
137
137
|
};
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
139
|
+
const classes = $derived(classNames('pie-chart', className));
|
|
140
|
+
const paths = $derived(getPaths(datasets));
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
$effect(() => watchCurrentIndex(currentIndex));
|
|
143
143
|
|
|
144
144
|
onDestroy(() => {
|
|
145
145
|
if (f7Tooltip && f7Tooltip.destroy) {
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
});
|
|
150
150
|
</script>
|
|
151
151
|
|
|
152
|
-
<div bind:this={el} class={classes} {...restProps
|
|
152
|
+
<div bind:this={el} class={classes} {...restProps}>
|
|
153
153
|
<svg
|
|
154
154
|
xmlns="http://www.w3.org/2000/svg"
|
|
155
155
|
width={size}
|
|
@@ -158,16 +158,18 @@
|
|
|
158
158
|
style="transform: rotate(-90deg)"
|
|
159
159
|
>
|
|
160
160
|
{#each paths as path, index (index)}
|
|
161
|
+
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
162
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
161
163
|
<path
|
|
162
164
|
d={path.points}
|
|
163
165
|
fill={path.color}
|
|
164
166
|
data-index={index}
|
|
165
167
|
class={classNames({ 'pie-chart-hidden': currentIndex !== null && currentIndex !== index })}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
onclick={() => setCurrentIndex(index)}
|
|
169
|
+
onmouseenter={() => setCurrentIndex(index)}
|
|
170
|
+
onmouseleave={() => setCurrentIndex(null)}
|
|
171
|
+
></path>
|
|
170
172
|
{/each}
|
|
171
173
|
</svg>
|
|
172
|
-
|
|
174
|
+
{@render children?.()}
|
|
173
175
|
</div>
|