@xenknight/framework7-vue 0.0.5 → 0.0.7
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/app.d.ts +5 -0
- package/components/app.js +4 -0
- package/components/navbar-new.d.ts +20 -0
- package/components/navbar-new.js +248 -0
- package/components/page.js +30 -3
- package/components/popover.d.ts +0 -5
- package/components/popover.js +5 -12
- package/components/searchbar-new.d.ts +20 -0
- package/components/searchbar-new.js +291 -0
- package/components/toolbar-new.d.ts +20 -0
- package/components/toolbar-new.js +135 -0
- package/components/toolbar-pane-new.d.ts +19 -0
- package/components/toolbar-pane-new.js +22 -0
- package/framework7-vue-bundle.js +9 -1
- package/framework7-vue.d.ts +5 -1
- package/framework7-vue.js +8 -4
- package/package.json +1 -1
package/components/app.d.ts
CHANGED
package/components/app.js
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
declare const NavbarNew: DefineComponent<
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
},
|
|
9
|
+
() => JSX.Element,
|
|
10
|
+
unknown,
|
|
11
|
+
{},
|
|
12
|
+
{},
|
|
13
|
+
ComponentOptionsMixin,
|
|
14
|
+
ComponentOptionsMixin,
|
|
15
|
+
("navbar-new:hide" | "navbar-new:show" | "navbar-new:expand" | "navbar-new:collapse" | "navbar-new:transparentshow" | "navbar-new:transparenthide" | "click:back" | "back:click")[],
|
|
16
|
+
"navbar-new:hide" | "navbar-new:show" | "navbar-new:expand" | "navbar-new:collapse" | "navbar-new:transparentshow" | "navbar-new:transparenthide" | "click:back" | "back:click"
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
export default NavbarNew;
|
|
20
|
+
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { createElementVNode as _createElementVNode, renderSlot as _renderSlot, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass } from "vue";
|
|
2
|
+
const _hoisted_1 = /*#__PURE__*/_createElementVNode("div", {
|
|
3
|
+
class: "navbar-new-bg"
|
|
4
|
+
}, null, -1);
|
|
5
|
+
const _hoisted_2 = {
|
|
6
|
+
key: 3,
|
|
7
|
+
className: "title-large"
|
|
8
|
+
};
|
|
9
|
+
const _hoisted_3 = {
|
|
10
|
+
className: "title-large-text"
|
|
11
|
+
};
|
|
12
|
+
function render(_ctx, _cache) {
|
|
13
|
+
const _component_f7_nav_left = _resolveComponent("f7-nav-left");
|
|
14
|
+
const _component_f7_nav_title = _resolveComponent("f7-nav-title");
|
|
15
|
+
const _component_f7_nav_right = _resolveComponent("f7-nav-right");
|
|
16
|
+
return _openBlock(), _createElementBlock("div", {
|
|
17
|
+
ref: "elRef",
|
|
18
|
+
class: _normalizeClass(_ctx.classes)
|
|
19
|
+
}, [_hoisted_1, _renderSlot(_ctx.$slots, "before-inner"), _createElementVNode("div", {
|
|
20
|
+
class: _normalizeClass(_ctx.innerClasses)
|
|
21
|
+
}, [_ctx.hasLeft ? (_openBlock(), _createBlock(_component_f7_nav_left, {
|
|
22
|
+
key: 0,
|
|
23
|
+
"back-link": _ctx.backLink,
|
|
24
|
+
"back-link-url": _ctx.backLinkUrl,
|
|
25
|
+
"back-link-force": _ctx.backLinkForce,
|
|
26
|
+
"back-link-show-text": _ctx.backLinkShowText,
|
|
27
|
+
"onBack:click": _ctx.onBackClick
|
|
28
|
+
}, {
|
|
29
|
+
default: _withCtx(() => [_renderSlot(_ctx.$slots, "nav-left"), _renderSlot(_ctx.$slots, "left")]),
|
|
30
|
+
_: 3
|
|
31
|
+
}, 8, ["back-link", "back-link-url", "back-link-force", "back-link-show-text", "onBack:click"])) : _createCommentVNode("", true), _ctx.hasTitle ? (_openBlock(), _createBlock(_component_f7_nav_title, {
|
|
32
|
+
key: 1,
|
|
33
|
+
title: _ctx.title,
|
|
34
|
+
subtitle: _ctx.subtitle
|
|
35
|
+
}, {
|
|
36
|
+
default: _withCtx(() => [_renderSlot(_ctx.$slots, "title")]),
|
|
37
|
+
_: 3
|
|
38
|
+
}, 8, ["title", "subtitle"])) : _createCommentVNode("", true), _ctx.hasRight ? (_openBlock(), _createBlock(_component_f7_nav_right, {
|
|
39
|
+
key: 2
|
|
40
|
+
}, {
|
|
41
|
+
default: _withCtx(() => [_renderSlot(_ctx.$slots, "nav-right"), _renderSlot(_ctx.$slots, "right")]),
|
|
42
|
+
_: 3
|
|
43
|
+
})) : _createCommentVNode("", true), _ctx.hasLargeTitle ? (_openBlock(), _createElementBlock("div", _hoisted_2, [_createElementVNode("div", _hoisted_3, [_createTextVNode(_toDisplayString(_ctx.largeTitle) + " ", 1), _renderSlot(_ctx.$slots, "title-large")])])) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "default")], 2), _renderSlot(_ctx.$slots, "after-inner")], 2);
|
|
44
|
+
}
|
|
45
|
+
import { computed, ref, onMounted, onBeforeUnmount } from 'vue';
|
|
46
|
+
import { classNames } from '../shared/utils.js';
|
|
47
|
+
import { colorClasses, colorProps } from '../shared/mixins.js';
|
|
48
|
+
import { f7ready, f7 } from '../shared/f7.js';
|
|
49
|
+
import { useTheme } from '../shared/use-theme.js';
|
|
50
|
+
import f7NavLeft from './nav-left.js';
|
|
51
|
+
import f7NavTitle from './nav-title.js';
|
|
52
|
+
import f7NavRight from './nav-right.js';
|
|
53
|
+
export default {
|
|
54
|
+
name: 'f7-navbar-new',
|
|
55
|
+
render,
|
|
56
|
+
components: {
|
|
57
|
+
f7NavLeft,
|
|
58
|
+
f7NavTitle,
|
|
59
|
+
f7NavRight
|
|
60
|
+
},
|
|
61
|
+
props: {
|
|
62
|
+
backLink: [Boolean, String],
|
|
63
|
+
backLinkUrl: String,
|
|
64
|
+
backLinkForce: Boolean,
|
|
65
|
+
backLinkShowText: {
|
|
66
|
+
type: Boolean,
|
|
67
|
+
default: undefined
|
|
68
|
+
},
|
|
69
|
+
sliding: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: true
|
|
72
|
+
},
|
|
73
|
+
title: String,
|
|
74
|
+
subtitle: String,
|
|
75
|
+
hidden: Boolean,
|
|
76
|
+
outline: {
|
|
77
|
+
type: Boolean,
|
|
78
|
+
default: true
|
|
79
|
+
},
|
|
80
|
+
innerClass: String,
|
|
81
|
+
innerClassName: String,
|
|
82
|
+
large: Boolean,
|
|
83
|
+
largeTransparent: Boolean,
|
|
84
|
+
transparent: Boolean,
|
|
85
|
+
titleLarge: String,
|
|
86
|
+
...colorProps
|
|
87
|
+
},
|
|
88
|
+
emits: ['navbar-new:hide', 'navbar-new:show', 'navbar-new:expand', 'navbar-new:collapse', 'navbar-new:transparentshow', 'navbar-new:transparenthide', 'click:back', 'back:click'],
|
|
89
|
+
setup(props, _ref) {
|
|
90
|
+
let {
|
|
91
|
+
emit,
|
|
92
|
+
slots
|
|
93
|
+
} = _ref;
|
|
94
|
+
let routerPositionClass = '';
|
|
95
|
+
let largeCollapsed = false;
|
|
96
|
+
let routerNavbarRole = null;
|
|
97
|
+
let routerNavbarRoleDetailRoot = false;
|
|
98
|
+
let routerNavbarMasterStack = false;
|
|
99
|
+
let transparentVisible = false;
|
|
100
|
+
const elRef = ref(null);
|
|
101
|
+
const theme = useTheme();
|
|
102
|
+
const onHide = navbarEl => {
|
|
103
|
+
if (elRef.value !== navbarEl) return;
|
|
104
|
+
emit('navbar-new:hide');
|
|
105
|
+
};
|
|
106
|
+
const onShow = navbarEl => {
|
|
107
|
+
if (elRef.value !== navbarEl) return;
|
|
108
|
+
emit('navbar-new:show');
|
|
109
|
+
};
|
|
110
|
+
const onExpand = navbarEl => {
|
|
111
|
+
if (elRef.value !== navbarEl) return;
|
|
112
|
+
largeCollapsed = false;
|
|
113
|
+
emit('navbar-new:expand');
|
|
114
|
+
};
|
|
115
|
+
const onCollapse = navbarEl => {
|
|
116
|
+
if (elRef.value !== navbarEl) return;
|
|
117
|
+
largeCollapsed = true;
|
|
118
|
+
emit('navbar-new:collapse');
|
|
119
|
+
};
|
|
120
|
+
const onNavbarTransparentShow = navbarEl => {
|
|
121
|
+
if (elRef.value !== navbarEl) return;
|
|
122
|
+
transparentVisible = true;
|
|
123
|
+
emit('navbar-new:transparentshow');
|
|
124
|
+
};
|
|
125
|
+
const onNavbarTransparentHide = navbarEl => {
|
|
126
|
+
if (elRef.value !== navbarEl) return;
|
|
127
|
+
transparentVisible = false;
|
|
128
|
+
emit('navbar-new:transparenthide');
|
|
129
|
+
};
|
|
130
|
+
const onNavbarPosition = (navbarEl, position) => {
|
|
131
|
+
if (elRef.value !== navbarEl) return;
|
|
132
|
+
routerPositionClass = position ? `navbar-${position}` : '';
|
|
133
|
+
};
|
|
134
|
+
const onNavbarRole = (navbarEl, rolesData) => {
|
|
135
|
+
if (elRef.value !== navbarEl) return;
|
|
136
|
+
routerNavbarRole = rolesData.role;
|
|
137
|
+
routerNavbarRoleDetailRoot = rolesData.detailRoot;
|
|
138
|
+
};
|
|
139
|
+
const onNavbarMasterStack = navbarEl => {
|
|
140
|
+
if (elRef.value !== navbarEl) return;
|
|
141
|
+
routerNavbarMasterStack = true;
|
|
142
|
+
};
|
|
143
|
+
const onNavbarMasterUnstack = navbarEl => {
|
|
144
|
+
if (elRef.value !== navbarEl) return;
|
|
145
|
+
routerNavbarMasterStack = false;
|
|
146
|
+
};
|
|
147
|
+
const hide = animate => {
|
|
148
|
+
if (!f7) return;
|
|
149
|
+
f7.navbarNew.hide(elRef.value, animate);
|
|
150
|
+
};
|
|
151
|
+
const show = animate => {
|
|
152
|
+
if (!f7) return;
|
|
153
|
+
f7.navbarNew.show(elRef.value, animate);
|
|
154
|
+
};
|
|
155
|
+
const size = () => {
|
|
156
|
+
if (!f7) return;
|
|
157
|
+
f7.navbarNew.size(elRef.value);
|
|
158
|
+
};
|
|
159
|
+
const onBackClick = event => {
|
|
160
|
+
emit('back:click', event);
|
|
161
|
+
emit('click:back', event);
|
|
162
|
+
};
|
|
163
|
+
onMounted(() => {
|
|
164
|
+
if (!elRef.value) return;
|
|
165
|
+
f7ready(() => {
|
|
166
|
+
f7.navbarNew.size(elRef.value);
|
|
167
|
+
f7.on('navbarNewShow', onShow);
|
|
168
|
+
f7.on('navbarNewHide', onHide);
|
|
169
|
+
f7.on('navbarNewCollapse', onCollapse);
|
|
170
|
+
f7.on('navbarNewExpand', onExpand);
|
|
171
|
+
f7.on('navbarPosition', onNavbarPosition);
|
|
172
|
+
f7.on('navbarRole', onNavbarRole);
|
|
173
|
+
f7.on('navbarMasterStack', onNavbarMasterStack);
|
|
174
|
+
f7.on('navbarMasterUnstack', onNavbarMasterUnstack);
|
|
175
|
+
f7.on('navbarNewTransparentShow', onNavbarTransparentShow);
|
|
176
|
+
f7.on('navbarNewTransparentHide', onNavbarTransparentHide);
|
|
177
|
+
});
|
|
178
|
+
});
|
|
179
|
+
onBeforeUnmount(() => {
|
|
180
|
+
if (!f7) return;
|
|
181
|
+
f7.off('navbarNewShow', onShow);
|
|
182
|
+
f7.off('navbarNewHide', onHide);
|
|
183
|
+
f7.off('navbarNewCollapse', onCollapse);
|
|
184
|
+
f7.off('navbarNewExpand', onExpand);
|
|
185
|
+
f7.off('navbarPosition', onNavbarPosition);
|
|
186
|
+
f7.off('navbarRole', onNavbarRole);
|
|
187
|
+
f7.off('navbarMasterStack', onNavbarMasterStack);
|
|
188
|
+
f7.off('navbarMasterUnstack', onNavbarMasterUnstack);
|
|
189
|
+
f7.off('navbarNewTransparentShow', onNavbarTransparentShow);
|
|
190
|
+
f7.off('navbarNewTransparentHide', onNavbarTransparentHide);
|
|
191
|
+
});
|
|
192
|
+
const addLeftTitleClass = computed(() => theme.value && theme.value.ios && f7 && !(f7.params.navbarNew && f7.params.navbarNew.iosCenterTitle));
|
|
193
|
+
const addCenterTitleClass = computed(() => theme.value && theme.value.md && f7 && f7.params.navbarNew && f7.params.navbarNew.mdCenterTitle);
|
|
194
|
+
const isLarge = computed(() => props.large || props.largeTransparent);
|
|
195
|
+
const isTransparent = computed(() => props.transparent || isLarge.value && props.largeTransparent);
|
|
196
|
+
const isTransparentVisible = computed(() => isTransparent.value && transparentVisible);
|
|
197
|
+
const classes = computed(() => classNames('navbar-new', routerPositionClass, {
|
|
198
|
+
'navbar-new-hidden': props.hidden,
|
|
199
|
+
'navbar-new-large': isLarge.value,
|
|
200
|
+
'navbar-new-large-collapsed': isLarge.value && largeCollapsed,
|
|
201
|
+
'navbar-new-transparent': isTransparent.value,
|
|
202
|
+
'navbar-new-transparent-visible': isTransparentVisible.value,
|
|
203
|
+
'navbar-master': routerNavbarRole === 'master',
|
|
204
|
+
'navbar-master-detail': routerNavbarRole === 'detail',
|
|
205
|
+
'navbar-master-detail-root': routerNavbarRoleDetailRoot === true,
|
|
206
|
+
'navbar-master-stacked': routerNavbarMasterStack === true,
|
|
207
|
+
'no-outline': !props.outline
|
|
208
|
+
}, colorClasses(props)));
|
|
209
|
+
const largeTitle = computed(() => {
|
|
210
|
+
let largeTitleText = props.titleLarge;
|
|
211
|
+
if (!largeTitleText && props.large && props.title) largeTitleText = props.title;
|
|
212
|
+
return largeTitleText;
|
|
213
|
+
});
|
|
214
|
+
const hasLeft = computed(() => {
|
|
215
|
+
return props.backLink || slots['nav-left'] || slots.left;
|
|
216
|
+
});
|
|
217
|
+
const hasTitle = computed(() => {
|
|
218
|
+
return props.title || props.subtitle || slots.title;
|
|
219
|
+
});
|
|
220
|
+
const hasRight = computed(() => {
|
|
221
|
+
return slots['nav-right'] || slots.right;
|
|
222
|
+
});
|
|
223
|
+
const hasLargeTitle = computed(() => {
|
|
224
|
+
return largeTitle.value || slots['title-large'];
|
|
225
|
+
});
|
|
226
|
+
const innerClasses = computed(() => {
|
|
227
|
+
return classNames('navbar-new-inner', props.innerClass, props.innerClassName, {
|
|
228
|
+
sliding: props.sliding,
|
|
229
|
+
'navbar-new-inner-left-title': addLeftTitleClass.value,
|
|
230
|
+
'navbar-new-inner-centered-title': addCenterTitleClass.value
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
return {
|
|
234
|
+
elRef,
|
|
235
|
+
classes,
|
|
236
|
+
innerClasses,
|
|
237
|
+
hide,
|
|
238
|
+
show,
|
|
239
|
+
size,
|
|
240
|
+
largeTitle,
|
|
241
|
+
hasLeft,
|
|
242
|
+
hasTitle,
|
|
243
|
+
hasRight,
|
|
244
|
+
hasLargeTitle,
|
|
245
|
+
onBackClick
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
};
|
package/components/page.js
CHANGED
|
@@ -2,6 +2,7 @@ import { computed, ref, onMounted, onBeforeUnmount, h } from 'vue';
|
|
|
2
2
|
import { classNames } from '../shared/utils.js';
|
|
3
3
|
import { colorClasses, colorProps } from '../shared/mixins.js';
|
|
4
4
|
import { f7ready, f7 } from '../shared/f7.js';
|
|
5
|
+
import $ from '../../core/shared/dom7.js';
|
|
5
6
|
import f7PageContent from './page-content.js';
|
|
6
7
|
export default {
|
|
7
8
|
name: 'f7-page',
|
|
@@ -78,7 +79,7 @@ export default {
|
|
|
78
79
|
const onPageInit = page => {
|
|
79
80
|
if (elRef.value !== page.el) return;
|
|
80
81
|
if (typeof props.withSubnavbar === 'undefined' && typeof props.subnavbar === 'undefined') {
|
|
81
|
-
if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length || page.$el.children('.navbar').find('.subnavbar').length) {
|
|
82
|
+
if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length || page.$navbarNewEl && page.$navbarNewEl.length && page.$navbarNewEl.find('.subnavbar').length || page.$el.children('.navbar').find('.subnavbar').length || page.$el.children('.navbar-new').find('.subnavbar').length) {
|
|
82
83
|
hasSubnavbar = true;
|
|
83
84
|
}
|
|
84
85
|
}
|
|
@@ -86,6 +87,9 @@ export default {
|
|
|
86
87
|
if (page.$navbarEl && page.$navbarEl.hasClass('navbar-large')) {
|
|
87
88
|
hasNavbarLarge = true;
|
|
88
89
|
}
|
|
90
|
+
if (page.$navbarNewEl && page.$navbarNewEl.hasClass('navbar-new-large')) {
|
|
91
|
+
hasNavbarLarge = true;
|
|
92
|
+
}
|
|
89
93
|
}
|
|
90
94
|
emit('page:init', page);
|
|
91
95
|
};
|
|
@@ -157,6 +161,22 @@ export default {
|
|
|
157
161
|
if (elRef.value !== pageEl) return;
|
|
158
162
|
hasNavbarLargeCollapsed = false;
|
|
159
163
|
};
|
|
164
|
+
const onNavbarNewCollapse = navbarEl => {
|
|
165
|
+
if (!elRef.value) return;
|
|
166
|
+
const $navbarEl = $(navbarEl);
|
|
167
|
+
const $pageEl = $navbarEl.parents('.page');
|
|
168
|
+
if ($pageEl.length && $pageEl[0] === elRef.value) {
|
|
169
|
+
hasNavbarLargeCollapsed = true;
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
const onNavbarNewExpand = navbarEl => {
|
|
173
|
+
if (!elRef.value) return;
|
|
174
|
+
const $navbarEl = $(navbarEl);
|
|
175
|
+
const $pageEl = $navbarEl.parents('.page');
|
|
176
|
+
if ($pageEl.length && $pageEl[0] === elRef.value) {
|
|
177
|
+
hasNavbarLargeCollapsed = false;
|
|
178
|
+
}
|
|
179
|
+
};
|
|
160
180
|
const onCardOpened = (cardEl, pageEl) => {
|
|
161
181
|
if (elRef.value !== pageEl) return;
|
|
162
182
|
hasCardExpandableOpened = true;
|
|
@@ -208,6 +228,8 @@ export default {
|
|
|
208
228
|
f7.on('pageMasterUnstack', onPageMasterUnstack);
|
|
209
229
|
f7.on('pageNavbarLargeCollapsed', onPageNavbarLargeCollapsed);
|
|
210
230
|
f7.on('pageNavbarLargeExpanded', onPageNavbarLargeExpanded);
|
|
231
|
+
f7.on('navbarNewCollapse', onNavbarNewCollapse);
|
|
232
|
+
f7.on('navbarNewExpand', onNavbarNewExpand);
|
|
211
233
|
f7.on('cardOpened', onCardOpened);
|
|
212
234
|
f7.on('cardClose', onCardClose);
|
|
213
235
|
f7.on('pageTabShow', onPageTabShow);
|
|
@@ -231,6 +253,8 @@ export default {
|
|
|
231
253
|
f7.off('pageMasterUnstack', onPageMasterUnstack);
|
|
232
254
|
f7.off('pageNavbarLargeCollapsed', onPageNavbarLargeCollapsed);
|
|
233
255
|
f7.off('pageNavbarLargeExpanded', onPageNavbarLargeExpanded);
|
|
256
|
+
f7.off('navbarNewCollapse', onNavbarNewCollapse);
|
|
257
|
+
f7.off('navbarNewExpand', onNavbarNewExpand);
|
|
234
258
|
f7.off('cardOpened', onCardOpened);
|
|
235
259
|
f7.off('cardClose', onCardClose);
|
|
236
260
|
f7.off('pageTabShow', onPageTabShow);
|
|
@@ -251,7 +275,7 @@ export default {
|
|
|
251
275
|
'page-with-card-opened': hasCardExpandableOpened === true,
|
|
252
276
|
'login-screen-page': props.loginScreen
|
|
253
277
|
}, colorClasses(props)));
|
|
254
|
-
const fixedTags = 'navbar toolbar tabbar subnavbar searchbar messagebar fab list-index panel'.split(' ').map(tagName => `f7-${tagName}`);
|
|
278
|
+
const fixedTags = 'navbar navbar-new toolbar tabbar subnavbar searchbar messagebar fab list-index panel'.split(' ').map(tagName => `f7-${tagName}`);
|
|
255
279
|
return () => {
|
|
256
280
|
const fixedList = [];
|
|
257
281
|
const staticList = [];
|
|
@@ -277,6 +301,9 @@ export default {
|
|
|
277
301
|
if (tag === 'f7-navbar') {
|
|
278
302
|
if (vnode.props && (vnode.props.large || vnode.props.large === '')) hasNavbarLargeComputed = true;
|
|
279
303
|
}
|
|
304
|
+
if (tag === 'f7-navbar-new') {
|
|
305
|
+
if (vnode.props && (vnode.props.large || vnode.props.largeTransparent || vnode.props.large === '')) hasNavbarLargeComputed = true;
|
|
306
|
+
}
|
|
280
307
|
if (typeof hasMessages === 'undefined' && tag === 'f7-messages') hasMessages = true;
|
|
281
308
|
if (fixedTags.indexOf(tag) >= 0) {
|
|
282
309
|
isFixedTag = true;
|
|
@@ -290,7 +317,7 @@ export default {
|
|
|
290
317
|
if ((hasSubnavbarComputed || hasSubnavbar) && typeof props.subnavbar === 'undefined' && typeof props.withSubnavbar === 'undefined' && classesValue.indexOf('page-with-subnavbar') < 0) {
|
|
291
318
|
classesValue += ' page-with-subnavbar';
|
|
292
319
|
}
|
|
293
|
-
if ((hasNavbarLargeComputed || hasNavbarLarge) && typeof props.navbarLarge === 'undefined' && typeof props.withNavbarLarge === 'undefined' && classesValue.indexOf('page-with-navbar-large') < 0) {
|
|
320
|
+
if ((hasNavbarLargeComputed || hasNavbarLarge) && typeof props.navbarLarge === 'undefined' && typeof props.withNavbarLarge === 'undefined' && classesValue.indexOf('page-with-navbar-large') < 0 && classesValue.indexOf('page-with-navbar-new-large') < 0) {
|
|
294
321
|
classesValue += ' page-with-navbar-large';
|
|
295
322
|
}
|
|
296
323
|
if (!props.pageContent) {
|
package/components/popover.d.ts
CHANGED
package/components/popover.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
|
|
2
2
|
const _hoisted_1 = {
|
|
3
|
-
key: 0,
|
|
4
|
-
class: "popover-arrow"
|
|
5
|
-
};
|
|
6
|
-
const _hoisted_2 = {
|
|
7
3
|
class: "popover-inner"
|
|
8
4
|
};
|
|
9
5
|
function render(_ctx, _cache) {
|
|
10
6
|
return _openBlock(), _createElementBlock("div", {
|
|
11
7
|
ref: "elRef",
|
|
12
8
|
class: _normalizeClass(_ctx.classes)
|
|
13
|
-
}, [
|
|
9
|
+
}, [_createElementVNode("div", _hoisted_1, [_renderSlot(_ctx.$slots, "default")])], 2);
|
|
14
10
|
}
|
|
15
11
|
import { computed, ref, watch, onMounted, onBeforeUnmount } from 'vue';
|
|
16
12
|
import { classNames } from '../shared/utils.js';
|
|
@@ -30,10 +26,6 @@ export default {
|
|
|
30
26
|
type: [String, Object],
|
|
31
27
|
default: undefined
|
|
32
28
|
},
|
|
33
|
-
arrow: {
|
|
34
|
-
type: Boolean,
|
|
35
|
-
default: undefined
|
|
36
|
-
},
|
|
37
29
|
backdrop: {
|
|
38
30
|
type: Boolean,
|
|
39
31
|
default: undefined
|
|
@@ -95,6 +87,9 @@ export default {
|
|
|
95
87
|
};
|
|
96
88
|
watch(() => props.opened, value => {
|
|
97
89
|
if (!f7Popover.value) return;
|
|
90
|
+
if (value === f7Popover.value.opened) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
98
93
|
if (value) {
|
|
99
94
|
f7Popover.value.open();
|
|
100
95
|
} else {
|
|
@@ -117,7 +112,6 @@ export default {
|
|
|
117
112
|
closeByBackdropClick,
|
|
118
113
|
closeByOutsideClick,
|
|
119
114
|
closeOnEscape,
|
|
120
|
-
arrow,
|
|
121
115
|
backdrop,
|
|
122
116
|
backdropEl,
|
|
123
117
|
containerEl,
|
|
@@ -127,7 +121,6 @@ export default {
|
|
|
127
121
|
if (typeof closeByBackdropClick !== 'undefined') popoverParams.closeByBackdropClick = closeByBackdropClick;
|
|
128
122
|
if (typeof closeByOutsideClick !== 'undefined') popoverParams.closeByOutsideClick = closeByOutsideClick;
|
|
129
123
|
if (typeof closeOnEscape !== 'undefined') popoverParams.closeOnEscape = closeOnEscape;
|
|
130
|
-
if (typeof arrow !== 'undefined') popoverParams.arrow = arrow;
|
|
131
124
|
if (typeof backdrop !== 'undefined') popoverParams.backdrop = backdrop;
|
|
132
125
|
if (typeof backdropEl !== 'undefined') popoverParams.backdropEl = backdropEl;
|
|
133
126
|
if (typeof containerEl !== 'undefined') popoverParams.containerEl = containerEl;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
declare const SearchbarNew: DefineComponent<
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
},
|
|
9
|
+
() => JSX.Element,
|
|
10
|
+
unknown,
|
|
11
|
+
{},
|
|
12
|
+
{},
|
|
13
|
+
ComponentOptionsMixin,
|
|
14
|
+
ComponentOptionsMixin,
|
|
15
|
+
("change" | "input" | "focus" | "blur" | "submit" | "click:clear" | "click:disable" | "searchbar-new:search" | "searchbar-new:clear" | "searchbar-new:enable" | "searchbar-new:disable" | "update:value")[],
|
|
16
|
+
"change" | "input" | "focus" | "blur" | "submit" | "click:clear" | "click:disable" | "searchbar-new:search" | "searchbar-new:clear" | "searchbar-new:enable" | "searchbar-new:disable" | "update:value"
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
export default SearchbarNew;
|
|
20
|
+
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { renderSlot as _renderSlot, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, resolveDynamicComponent as _resolveDynamicComponent, normalizeClass as _normalizeClass, withCtx as _withCtx, createBlock as _createBlock } from "vue";
|
|
2
|
+
const _hoisted_1 = {
|
|
3
|
+
class: "searchbar-new-inner"
|
|
4
|
+
};
|
|
5
|
+
const _hoisted_2 = {
|
|
6
|
+
class: "searchbar-new-input-wrap"
|
|
7
|
+
};
|
|
8
|
+
const _hoisted_3 = ["value", "placeholder", "spellcheck"];
|
|
9
|
+
const _hoisted_4 = /*#__PURE__*/_createElementVNode("i", {
|
|
10
|
+
class: "searchbar-new-icon"
|
|
11
|
+
}, null, -1);
|
|
12
|
+
const _hoisted_5 = /*#__PURE__*/_createElementVNode("i", {
|
|
13
|
+
class: "icon icon-close"
|
|
14
|
+
}, null, -1);
|
|
15
|
+
const _hoisted_6 = {
|
|
16
|
+
key: 0
|
|
17
|
+
};
|
|
18
|
+
function render(_ctx, _cache) {
|
|
19
|
+
return _openBlock(), _createBlock(_resolveDynamicComponent(_ctx.tag), {
|
|
20
|
+
ref: "elRef",
|
|
21
|
+
class: _normalizeClass(_ctx.classes),
|
|
22
|
+
onSubmit: _ctx.onSubmit
|
|
23
|
+
}, {
|
|
24
|
+
default: _withCtx(() => [_renderSlot(_ctx.$slots, "before-inner"), _createElementVNode("div", _hoisted_1, [_renderSlot(_ctx.$slots, "inner-start"), _createElementVNode("div", _hoisted_2, [_renderSlot(_ctx.$slots, "input-wrap-start"), _createElementVNode("input", {
|
|
25
|
+
value: _ctx.value,
|
|
26
|
+
placeholder: _ctx.placeholder,
|
|
27
|
+
spellcheck: _ctx.spellcheck,
|
|
28
|
+
type: "search",
|
|
29
|
+
onInput: _cache[0] || (_cache[0] = function () {
|
|
30
|
+
return _ctx.onInput && _ctx.onInput(...arguments);
|
|
31
|
+
}),
|
|
32
|
+
onChange: _cache[1] || (_cache[1] = function () {
|
|
33
|
+
return _ctx.onChange && _ctx.onChange(...arguments);
|
|
34
|
+
}),
|
|
35
|
+
onFocus: _cache[2] || (_cache[2] = function () {
|
|
36
|
+
return _ctx.onFocus && _ctx.onFocus(...arguments);
|
|
37
|
+
}),
|
|
38
|
+
onBlur: _cache[3] || (_cache[3] = function () {
|
|
39
|
+
return _ctx.onBlur && _ctx.onBlur(...arguments);
|
|
40
|
+
})
|
|
41
|
+
}, null, 40, _hoisted_3), _hoisted_4, _ctx.clearButton ? (_openBlock(), _createElementBlock("span", {
|
|
42
|
+
key: 0,
|
|
43
|
+
class: "input-clear-button",
|
|
44
|
+
onClick: _cache[4] || (_cache[4] = function () {
|
|
45
|
+
return _ctx.onClearButtonClick && _ctx.onClearButtonClick(...arguments);
|
|
46
|
+
})
|
|
47
|
+
})) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "input-wrap-end")]), _ctx.disableButton ? (_openBlock(), _createElementBlock("span", {
|
|
48
|
+
key: 0,
|
|
49
|
+
class: "searchbar-new-disable-button",
|
|
50
|
+
onClick: _cache[5] || (_cache[5] = function () {
|
|
51
|
+
return _ctx.onDisableButtonClick && _ctx.onDisableButtonClick(...arguments);
|
|
52
|
+
})
|
|
53
|
+
}, [_hoisted_5, _ctx.disableButtonText ? (_openBlock(), _createElementBlock("span", _hoisted_6, _toDisplayString(_ctx.disableButtonText), 1)) : _createCommentVNode("", true)])) : _createCommentVNode("", true), _renderSlot(_ctx.$slots, "inner-end"), _renderSlot(_ctx.$slots, "default")]), _renderSlot(_ctx.$slots, "after-inner")]),
|
|
54
|
+
_: 3
|
|
55
|
+
}, 40, ["class", "onSubmit"]);
|
|
56
|
+
}
|
|
57
|
+
import { computed, ref, onMounted, onBeforeUnmount } from 'vue';
|
|
58
|
+
import { classNames, noUndefinedProps } from '../shared/utils.js';
|
|
59
|
+
import { colorClasses, colorProps } from '../shared/mixins.js';
|
|
60
|
+
import { f7ready, f7 } from '../shared/f7.js';
|
|
61
|
+
export default {
|
|
62
|
+
name: 'f7-searchbar-new',
|
|
63
|
+
render,
|
|
64
|
+
props: {
|
|
65
|
+
outline: {
|
|
66
|
+
type: Boolean,
|
|
67
|
+
default: true
|
|
68
|
+
},
|
|
69
|
+
form: {
|
|
70
|
+
type: Boolean,
|
|
71
|
+
default: true
|
|
72
|
+
},
|
|
73
|
+
placeholder: {
|
|
74
|
+
type: String,
|
|
75
|
+
default: 'Search'
|
|
76
|
+
},
|
|
77
|
+
spellcheck: {
|
|
78
|
+
type: Boolean,
|
|
79
|
+
default: undefined
|
|
80
|
+
},
|
|
81
|
+
disableButton: {
|
|
82
|
+
type: Boolean,
|
|
83
|
+
default: true
|
|
84
|
+
},
|
|
85
|
+
disableButtonText: {
|
|
86
|
+
type: String,
|
|
87
|
+
default: 'Cancel'
|
|
88
|
+
},
|
|
89
|
+
clearButton: {
|
|
90
|
+
type: Boolean,
|
|
91
|
+
default: true
|
|
92
|
+
},
|
|
93
|
+
// Input Value
|
|
94
|
+
value: [String, Number, Array],
|
|
95
|
+
// SB Params
|
|
96
|
+
inputEvents: {
|
|
97
|
+
type: String,
|
|
98
|
+
default: 'change input compositionend'
|
|
99
|
+
},
|
|
100
|
+
expandable: Boolean,
|
|
101
|
+
inline: Boolean,
|
|
102
|
+
searchContainer: [String, Object],
|
|
103
|
+
searchIn: {
|
|
104
|
+
type: String,
|
|
105
|
+
default: '.item-title'
|
|
106
|
+
},
|
|
107
|
+
searchItem: {
|
|
108
|
+
type: String,
|
|
109
|
+
default: 'li'
|
|
110
|
+
},
|
|
111
|
+
searchGroup: {
|
|
112
|
+
type: String,
|
|
113
|
+
default: '.list-group'
|
|
114
|
+
},
|
|
115
|
+
searchGroupTitle: {
|
|
116
|
+
type: String,
|
|
117
|
+
default: '.list-group-title'
|
|
118
|
+
},
|
|
119
|
+
foundEl: {
|
|
120
|
+
type: [String, Object],
|
|
121
|
+
default: '.searchbar-new-found'
|
|
122
|
+
},
|
|
123
|
+
notFoundEl: {
|
|
124
|
+
type: [String, Object],
|
|
125
|
+
default: '.searchbar-new-not-found'
|
|
126
|
+
},
|
|
127
|
+
backdrop: {
|
|
128
|
+
type: Boolean,
|
|
129
|
+
default: undefined
|
|
130
|
+
},
|
|
131
|
+
backdropEl: [String, Object],
|
|
132
|
+
hideOnEnableEl: {
|
|
133
|
+
type: [String, Object],
|
|
134
|
+
default: '.searchbar-new-hide-on-enable'
|
|
135
|
+
},
|
|
136
|
+
hideOnSearchEl: {
|
|
137
|
+
type: [String, Object],
|
|
138
|
+
default: '.searchbar-new-hide-on-search'
|
|
139
|
+
},
|
|
140
|
+
ignore: {
|
|
141
|
+
type: String,
|
|
142
|
+
default: '.searchbar-new-ignore'
|
|
143
|
+
},
|
|
144
|
+
customSearch: {
|
|
145
|
+
type: Boolean,
|
|
146
|
+
default: false
|
|
147
|
+
},
|
|
148
|
+
removeDiacritics: {
|
|
149
|
+
type: Boolean,
|
|
150
|
+
default: false
|
|
151
|
+
},
|
|
152
|
+
hideGroupTitles: {
|
|
153
|
+
type: Boolean,
|
|
154
|
+
default: true
|
|
155
|
+
},
|
|
156
|
+
hideGroups: {
|
|
157
|
+
type: Boolean,
|
|
158
|
+
default: true
|
|
159
|
+
},
|
|
160
|
+
init: {
|
|
161
|
+
type: Boolean,
|
|
162
|
+
default: true
|
|
163
|
+
},
|
|
164
|
+
...colorProps
|
|
165
|
+
},
|
|
166
|
+
emits: ['change', 'input', 'focus', 'blur', 'submit', 'click:clear', 'click:disable', 'searchbar-new:search', 'searchbar-new:clear', 'searchbar-new:enable', 'searchbar-new:disable', 'update:value'],
|
|
167
|
+
setup(props, _ref) {
|
|
168
|
+
let {
|
|
169
|
+
emit
|
|
170
|
+
} = _ref;
|
|
171
|
+
let f7Searchbar = null;
|
|
172
|
+
const elRef = ref(null);
|
|
173
|
+
const search = query => {
|
|
174
|
+
if (!f7Searchbar) return undefined;
|
|
175
|
+
return f7Searchbar.search(query);
|
|
176
|
+
};
|
|
177
|
+
const enable = () => {
|
|
178
|
+
if (!f7Searchbar) return undefined;
|
|
179
|
+
return f7Searchbar.enable();
|
|
180
|
+
};
|
|
181
|
+
const disable = () => {
|
|
182
|
+
if (!f7Searchbar) return undefined;
|
|
183
|
+
return f7Searchbar.disable();
|
|
184
|
+
};
|
|
185
|
+
const toggle = () => {
|
|
186
|
+
if (!f7Searchbar) return undefined;
|
|
187
|
+
return f7Searchbar.toggle();
|
|
188
|
+
};
|
|
189
|
+
const clear = () => {
|
|
190
|
+
if (!f7Searchbar) return undefined;
|
|
191
|
+
return f7Searchbar.clear();
|
|
192
|
+
};
|
|
193
|
+
const onChange = event => {
|
|
194
|
+
emit('change', event);
|
|
195
|
+
};
|
|
196
|
+
const onInput = event => {
|
|
197
|
+
emit('input', event);
|
|
198
|
+
emit('update:value', event.target.value);
|
|
199
|
+
};
|
|
200
|
+
const onFocus = event => {
|
|
201
|
+
emit('focus', event);
|
|
202
|
+
};
|
|
203
|
+
const onBlur = event => {
|
|
204
|
+
emit('blur', event);
|
|
205
|
+
};
|
|
206
|
+
const onSubmit = event => {
|
|
207
|
+
emit('submit', event);
|
|
208
|
+
};
|
|
209
|
+
const onClearButtonClick = event => {
|
|
210
|
+
emit('click:clear', event);
|
|
211
|
+
};
|
|
212
|
+
const onDisableButtonClick = event => {
|
|
213
|
+
emit('click:disable', event);
|
|
214
|
+
};
|
|
215
|
+
onMounted(() => {
|
|
216
|
+
if (!props.init) return;
|
|
217
|
+
f7ready(() => {
|
|
218
|
+
const params = noUndefinedProps({
|
|
219
|
+
el: elRef.value,
|
|
220
|
+
inputEvents: props.inputEvents,
|
|
221
|
+
searchContainer: props.searchContainer,
|
|
222
|
+
searchIn: props.searchIn,
|
|
223
|
+
searchItem: props.searchItem,
|
|
224
|
+
searchGroup: props.searchGroup,
|
|
225
|
+
searchGroupTitle: props.searchGroupTitle,
|
|
226
|
+
hideOnEnableEl: props.hideOnEnableEl,
|
|
227
|
+
hideOnSearchEl: props.hideOnSearchEl,
|
|
228
|
+
foundEl: props.foundEl,
|
|
229
|
+
notFoundEl: props.notFoundEl,
|
|
230
|
+
backdrop: props.backdrop,
|
|
231
|
+
backdropEl: props.backdropEl,
|
|
232
|
+
disableButton: props.disableButton,
|
|
233
|
+
ignore: props.ignore,
|
|
234
|
+
customSearch: props.customSearch,
|
|
235
|
+
removeDiacritics: props.removeDiacritics,
|
|
236
|
+
hideGroupTitles: props.hideGroupTitles,
|
|
237
|
+
hideGroups: props.hideGroups,
|
|
238
|
+
expandable: props.expandable,
|
|
239
|
+
inline: props.inline,
|
|
240
|
+
on: {
|
|
241
|
+
search(searchbar, query, previousQuery) {
|
|
242
|
+
emit('searchbar-new:search', searchbar, query, previousQuery);
|
|
243
|
+
},
|
|
244
|
+
clear(searchbar, previousQuery) {
|
|
245
|
+
emit('searchbar-new:clear', searchbar, previousQuery);
|
|
246
|
+
},
|
|
247
|
+
enable(searchbar) {
|
|
248
|
+
emit('searchbar-new:enable', searchbar);
|
|
249
|
+
},
|
|
250
|
+
disable(searchbar) {
|
|
251
|
+
emit('searchbar-new:disable', searchbar);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
Object.keys(params).forEach(key => {
|
|
256
|
+
if (params[key] === '') {
|
|
257
|
+
delete params[key];
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
f7Searchbar = f7.searchbarNew.create(params);
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
onBeforeUnmount(() => {
|
|
264
|
+
if (f7Searchbar && f7Searchbar.destroy) f7Searchbar.destroy();
|
|
265
|
+
f7Searchbar = null;
|
|
266
|
+
});
|
|
267
|
+
const classes = computed(() => classNames('searchbar-new', {
|
|
268
|
+
'searchbar-new-inline': props.inline,
|
|
269
|
+
'no-outline': !props.outline,
|
|
270
|
+
'searchbar-new-expandable': props.expandable
|
|
271
|
+
}, colorClasses(props)));
|
|
272
|
+
const tag = computed(() => props.form ? 'form' : 'div');
|
|
273
|
+
return {
|
|
274
|
+
elRef,
|
|
275
|
+
tag,
|
|
276
|
+
classes,
|
|
277
|
+
search,
|
|
278
|
+
enable,
|
|
279
|
+
disable,
|
|
280
|
+
toggle,
|
|
281
|
+
clear,
|
|
282
|
+
onChange,
|
|
283
|
+
onInput,
|
|
284
|
+
onFocus,
|
|
285
|
+
onBlur,
|
|
286
|
+
onSubmit,
|
|
287
|
+
onClearButtonClick,
|
|
288
|
+
onDisableButtonClick
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
|
|
2
|
+
import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
declare const ToolbarNew: DefineComponent<
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
},
|
|
9
|
+
() => JSX.Element,
|
|
10
|
+
unknown,
|
|
11
|
+
{},
|
|
12
|
+
{},
|
|
13
|
+
ComponentOptionsMixin,
|
|
14
|
+
ComponentOptionsMixin,
|
|
15
|
+
("toolbar-new:hide" | "toolbar-new:show")[],
|
|
16
|
+
"toolbar-new:hide" | "toolbar-new:show"
|
|
17
|
+
>;
|
|
18
|
+
|
|
19
|
+
export default ToolbarNew;
|
|
20
|
+
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { renderSlot as _renderSlot, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass } from "vue";
|
|
2
|
+
const _hoisted_1 = {
|
|
3
|
+
key: 0,
|
|
4
|
+
className: "toolbar-new-inner"
|
|
5
|
+
};
|
|
6
|
+
function render(_ctx, _cache) {
|
|
7
|
+
return _openBlock(), _createElementBlock("div", {
|
|
8
|
+
ref: "elRef",
|
|
9
|
+
class: _normalizeClass(_ctx.classes)
|
|
10
|
+
}, [_renderSlot(_ctx.$slots, "before-inner"), _ctx.inner ? (_openBlock(), _createElementBlock("div", _hoisted_1, [_renderSlot(_ctx.$slots, "default")])) : _renderSlot(_ctx.$slots, "default", {
|
|
11
|
+
key: 1
|
|
12
|
+
}), _renderSlot(_ctx.$slots, "after-inner")], 2);
|
|
13
|
+
}
|
|
14
|
+
import { computed, ref, provide, onMounted, onBeforeUnmount } from 'vue';
|
|
15
|
+
import { classNames } from '../shared/utils.js';
|
|
16
|
+
import { colorClasses, colorProps } from '../shared/mixins.js';
|
|
17
|
+
import { f7 } from '../shared/f7.js';
|
|
18
|
+
import { useTheme } from '../shared/use-theme.js';
|
|
19
|
+
export default {
|
|
20
|
+
name: 'f7-toolbar-new',
|
|
21
|
+
render,
|
|
22
|
+
props: {
|
|
23
|
+
tabbar: Boolean,
|
|
24
|
+
icons: Boolean,
|
|
25
|
+
scrollable: Boolean,
|
|
26
|
+
hidden: Boolean,
|
|
27
|
+
outline: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
default: true
|
|
30
|
+
},
|
|
31
|
+
position: {
|
|
32
|
+
type: String,
|
|
33
|
+
default: undefined
|
|
34
|
+
},
|
|
35
|
+
topMd: {
|
|
36
|
+
type: Boolean,
|
|
37
|
+
default: undefined
|
|
38
|
+
},
|
|
39
|
+
topIos: {
|
|
40
|
+
type: Boolean,
|
|
41
|
+
default: undefined
|
|
42
|
+
},
|
|
43
|
+
top: {
|
|
44
|
+
type: Boolean,
|
|
45
|
+
default: undefined
|
|
46
|
+
},
|
|
47
|
+
bottomMd: {
|
|
48
|
+
type: Boolean,
|
|
49
|
+
default: undefined
|
|
50
|
+
},
|
|
51
|
+
bottomIos: {
|
|
52
|
+
type: Boolean,
|
|
53
|
+
default: undefined
|
|
54
|
+
},
|
|
55
|
+
bottom: {
|
|
56
|
+
type: Boolean,
|
|
57
|
+
default: undefined
|
|
58
|
+
},
|
|
59
|
+
inner: {
|
|
60
|
+
type: Boolean,
|
|
61
|
+
default: true
|
|
62
|
+
},
|
|
63
|
+
...colorProps
|
|
64
|
+
},
|
|
65
|
+
emits: ['toolbar-new:hide', 'toolbar-new:show'],
|
|
66
|
+
setup(props, _ref) {
|
|
67
|
+
let {
|
|
68
|
+
emit
|
|
69
|
+
} = _ref;
|
|
70
|
+
const elRef = ref(null);
|
|
71
|
+
const theme = useTheme();
|
|
72
|
+
const onHide = toolbarEl => {
|
|
73
|
+
if (elRef.value !== toolbarEl) return;
|
|
74
|
+
emit('toolbar-new:hide');
|
|
75
|
+
};
|
|
76
|
+
const onShow = toolbarEl => {
|
|
77
|
+
if (elRef.value !== toolbarEl) return;
|
|
78
|
+
emit('toolbar-new:show');
|
|
79
|
+
};
|
|
80
|
+
const hide = animate => {
|
|
81
|
+
if (!f7) return;
|
|
82
|
+
f7.toolbarNew.hide(elRef.value, animate);
|
|
83
|
+
};
|
|
84
|
+
const show = animate => {
|
|
85
|
+
if (!f7) return;
|
|
86
|
+
f7.toolbarNew.show(elRef.value, animate);
|
|
87
|
+
};
|
|
88
|
+
onMounted(() => {
|
|
89
|
+
if (props.tabbar && f7 && elRef.value) {
|
|
90
|
+
f7.toolbarNew.setHighlight(elRef.value);
|
|
91
|
+
}
|
|
92
|
+
f7.on('toolbarNewShow', onShow);
|
|
93
|
+
f7.on('toolbarNewHide', onHide);
|
|
94
|
+
});
|
|
95
|
+
onBeforeUnmount(() => {
|
|
96
|
+
f7.off('toolbarNewShow', onShow);
|
|
97
|
+
f7.off('toolbarNewHide', onHide);
|
|
98
|
+
});
|
|
99
|
+
const TabbarNewContext = computed(() => ({
|
|
100
|
+
tabbarHasIcons: props.icons
|
|
101
|
+
}));
|
|
102
|
+
provide('TabbarNewContext', TabbarNewContext);
|
|
103
|
+
const classes = computed(() => {
|
|
104
|
+
const {
|
|
105
|
+
tabbar,
|
|
106
|
+
bottomMd,
|
|
107
|
+
bottomIos,
|
|
108
|
+
bottom,
|
|
109
|
+
position,
|
|
110
|
+
topMd,
|
|
111
|
+
topIos,
|
|
112
|
+
top,
|
|
113
|
+
icons,
|
|
114
|
+
scrollable,
|
|
115
|
+
hidden,
|
|
116
|
+
outline
|
|
117
|
+
} = props;
|
|
118
|
+
return classNames('toolbar-new', {
|
|
119
|
+
'tabbar-new': tabbar,
|
|
120
|
+
'toolbar-new-bottom': theme.value && theme.value.md && bottomMd || theme.value && theme.value.ios && bottomIos || bottom || position === 'bottom',
|
|
121
|
+
'toolbar-new-top': theme.value && theme.value.md && topMd || theme.value && theme.value.ios && topIos || top || position === 'top',
|
|
122
|
+
'tabbar-new-icons': icons,
|
|
123
|
+
'tabbar-new-scrollable': scrollable,
|
|
124
|
+
'toolbar-new-hidden': hidden,
|
|
125
|
+
'no-outline': !outline
|
|
126
|
+
}, colorClasses(props));
|
|
127
|
+
});
|
|
128
|
+
return {
|
|
129
|
+
classes,
|
|
130
|
+
elRef,
|
|
131
|
+
hide,
|
|
132
|
+
show
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
|
|
2
|
+
import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
declare const ToolbarPaneNew: DefineComponent<
|
|
6
|
+
{
|
|
7
|
+
|
|
8
|
+
},
|
|
9
|
+
() => JSX.Element,
|
|
10
|
+
unknown,
|
|
11
|
+
{},
|
|
12
|
+
{},
|
|
13
|
+
ComponentOptionsMixin,
|
|
14
|
+
ComponentOptionsMixin,
|
|
15
|
+
|
|
16
|
+
>;
|
|
17
|
+
|
|
18
|
+
export default ToolbarPaneNew;
|
|
19
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { renderSlot as _renderSlot, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
|
|
2
|
+
function render(_ctx, _cache) {
|
|
3
|
+
return _openBlock(), _createElementBlock("div", {
|
|
4
|
+
ref: "elRef",
|
|
5
|
+
class: _normalizeClass(_ctx.classes)
|
|
6
|
+
}, [_renderSlot(_ctx.$slots, "default")], 2);
|
|
7
|
+
}
|
|
8
|
+
import { computed } from 'vue';
|
|
9
|
+
import { classNames } from '../shared/utils.js';
|
|
10
|
+
export default {
|
|
11
|
+
name: 'f7-toolbar-pane-new',
|
|
12
|
+
render,
|
|
13
|
+
props: {},
|
|
14
|
+
setup() {
|
|
15
|
+
const classes = computed(() => {
|
|
16
|
+
return classNames('toolbar-new-pane');
|
|
17
|
+
});
|
|
18
|
+
return {
|
|
19
|
+
classes
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
};
|
package/framework7-vue-bundle.js
CHANGED
|
@@ -57,6 +57,7 @@ import f7NavLeft from './components/nav-left.js';
|
|
|
57
57
|
import f7NavRight from './components/nav-right.js';
|
|
58
58
|
import f7NavTitleLarge from './components/nav-title-large.js';
|
|
59
59
|
import f7NavTitle from './components/nav-title.js';
|
|
60
|
+
import f7NavbarNew from './components/navbar-new.js';
|
|
60
61
|
import f7Navbar from './components/navbar.js';
|
|
61
62
|
import f7PageContent from './components/page-content.js';
|
|
62
63
|
import f7Page from './components/page.js';
|
|
@@ -70,6 +71,7 @@ import f7Progressbar from './components/progressbar.js';
|
|
|
70
71
|
import f7Radio from './components/radio.js';
|
|
71
72
|
import f7Range from './components/range.js';
|
|
72
73
|
import f7RoutableModals from './components/routable-modals.js';
|
|
74
|
+
import f7SearchbarNew from './components/searchbar-new.js';
|
|
73
75
|
import f7Searchbar from './components/searchbar.js';
|
|
74
76
|
import f7Segmented from './components/segmented.js';
|
|
75
77
|
import f7Sheet from './components/sheet.js';
|
|
@@ -85,6 +87,8 @@ import f7Tab from './components/tab.js';
|
|
|
85
87
|
import f7Tabs from './components/tabs.js';
|
|
86
88
|
import f7TextEditor from './components/text-editor.js';
|
|
87
89
|
import f7Toggle from './components/toggle.js';
|
|
90
|
+
import f7ToolbarNew from './components/toolbar-new.js';
|
|
91
|
+
import f7ToolbarPaneNew from './components/toolbar-pane-new.js';
|
|
88
92
|
import f7Toolbar from './components/toolbar.js';
|
|
89
93
|
import f7TreeviewItem from './components/treeview-item.js';
|
|
90
94
|
import f7Treeview from './components/treeview.js';
|
|
@@ -92,7 +96,7 @@ import f7UseIcon from './components/use-icon.js';
|
|
|
92
96
|
import f7View from './components/view.js';
|
|
93
97
|
import f7Views from './components/views.js';
|
|
94
98
|
|
|
95
|
-
export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
|
|
99
|
+
export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7NavbarNew, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7SearchbarNew, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7ToolbarNew, f7ToolbarPaneNew, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
|
|
96
100
|
export { f7, f7ready, theme, useStore, setTheme };
|
|
97
101
|
export default Framework7Vue;
|
|
98
102
|
|
|
@@ -152,6 +156,7 @@ function registerComponents(app) {
|
|
|
152
156
|
app.component('f7-nav-right', f7NavRight);
|
|
153
157
|
app.component('f7-nav-title-large', f7NavTitleLarge);
|
|
154
158
|
app.component('f7-nav-title', f7NavTitle);
|
|
159
|
+
app.component('f7-navbar-new', f7NavbarNew);
|
|
155
160
|
app.component('f7-navbar', f7Navbar);
|
|
156
161
|
app.component('f7-page-content', f7PageContent);
|
|
157
162
|
app.component('f7-page', f7Page);
|
|
@@ -165,6 +170,7 @@ function registerComponents(app) {
|
|
|
165
170
|
app.component('f7-radio', f7Radio);
|
|
166
171
|
app.component('f7-range', f7Range);
|
|
167
172
|
app.component('f7-routable-modals', f7RoutableModals);
|
|
173
|
+
app.component('f7-searchbar-new', f7SearchbarNew);
|
|
168
174
|
app.component('f7-searchbar', f7Searchbar);
|
|
169
175
|
app.component('f7-segmented', f7Segmented);
|
|
170
176
|
app.component('f7-sheet', f7Sheet);
|
|
@@ -180,6 +186,8 @@ function registerComponents(app) {
|
|
|
180
186
|
app.component('f7-tabs', f7Tabs);
|
|
181
187
|
app.component('f7-text-editor', f7TextEditor);
|
|
182
188
|
app.component('f7-toggle', f7Toggle);
|
|
189
|
+
app.component('f7-toolbar-new', f7ToolbarNew);
|
|
190
|
+
app.component('f7-toolbar-pane-new', f7ToolbarPaneNew);
|
|
183
191
|
app.component('f7-toolbar', f7Toolbar);
|
|
184
192
|
app.component('f7-treeview-item', f7TreeviewItem);
|
|
185
193
|
app.component('f7-treeview', f7Treeview);
|
package/framework7-vue.d.ts
CHANGED
|
@@ -56,6 +56,7 @@ import f7NavLeft from './components/nav-left.js';
|
|
|
56
56
|
import f7NavRight from './components/nav-right.js';
|
|
57
57
|
import f7NavTitleLarge from './components/nav-title-large.js';
|
|
58
58
|
import f7NavTitle from './components/nav-title.js';
|
|
59
|
+
import f7NavbarNew from './components/navbar-new.js';
|
|
59
60
|
import f7Navbar from './components/navbar.js';
|
|
60
61
|
import f7PageContent from './components/page-content.js';
|
|
61
62
|
import f7Page from './components/page.js';
|
|
@@ -69,6 +70,7 @@ import f7Progressbar from './components/progressbar.js';
|
|
|
69
70
|
import f7Radio from './components/radio.js';
|
|
70
71
|
import f7Range from './components/range.js';
|
|
71
72
|
import f7RoutableModals from './components/routable-modals.js';
|
|
73
|
+
import f7SearchbarNew from './components/searchbar-new.js';
|
|
72
74
|
import f7Searchbar from './components/searchbar.js';
|
|
73
75
|
import f7Segmented from './components/segmented.js';
|
|
74
76
|
import f7Sheet from './components/sheet.js';
|
|
@@ -84,6 +86,8 @@ import f7Tab from './components/tab.js';
|
|
|
84
86
|
import f7Tabs from './components/tabs.js';
|
|
85
87
|
import f7TextEditor from './components/text-editor.js';
|
|
86
88
|
import f7Toggle from './components/toggle.js';
|
|
89
|
+
import f7ToolbarNew from './components/toolbar-new.js';
|
|
90
|
+
import f7ToolbarPaneNew from './components/toolbar-pane-new.js';
|
|
87
91
|
import f7Toolbar from './components/toolbar.js';
|
|
88
92
|
import f7TreeviewItem from './components/treeview-item.js';
|
|
89
93
|
import f7Treeview from './components/treeview.js';
|
|
@@ -116,6 +120,6 @@ declare const useStore: useStore;
|
|
|
116
120
|
|
|
117
121
|
declare const setTheme: (theme: string) => void;
|
|
118
122
|
|
|
119
|
-
export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
|
|
123
|
+
export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7NavbarNew, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7SearchbarNew, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7ToolbarNew, f7ToolbarPaneNew, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
|
|
120
124
|
export { f7, f7ready, theme, useStore, setTheme };
|
|
121
125
|
export default Framework7Vue;
|
package/framework7-vue.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Framework7 Vue 0.0.
|
|
2
|
+
* Framework7 Vue 0.0.6
|
|
3
3
|
* Build full featured iOS & Android apps using Framework7 & Vue
|
|
4
4
|
* https://framework7.io/vue/
|
|
5
5
|
*
|
|
6
|
-
* Copyright 2014-
|
|
6
|
+
* Copyright 2014-2026 Vladimir Kharlampidi
|
|
7
7
|
*
|
|
8
8
|
* Released under the MIT License
|
|
9
9
|
*
|
|
10
|
-
* Released on:
|
|
10
|
+
* Released on: January 1, 2026
|
|
11
11
|
*/
|
|
12
12
|
import Framework7Vue from './shared/plugin.js';
|
|
13
13
|
import { f7, f7ready, theme, setTheme } from './shared/f7.js';
|
|
@@ -68,6 +68,7 @@ import f7NavLeft from './components/nav-left.js';
|
|
|
68
68
|
import f7NavRight from './components/nav-right.js';
|
|
69
69
|
import f7NavTitleLarge from './components/nav-title-large.js';
|
|
70
70
|
import f7NavTitle from './components/nav-title.js';
|
|
71
|
+
import f7NavbarNew from './components/navbar-new.js';
|
|
71
72
|
import f7Navbar from './components/navbar.js';
|
|
72
73
|
import f7PageContent from './components/page-content.js';
|
|
73
74
|
import f7Page from './components/page.js';
|
|
@@ -81,6 +82,7 @@ import f7Progressbar from './components/progressbar.js';
|
|
|
81
82
|
import f7Radio from './components/radio.js';
|
|
82
83
|
import f7Range from './components/range.js';
|
|
83
84
|
import f7RoutableModals from './components/routable-modals.js';
|
|
85
|
+
import f7SearchbarNew from './components/searchbar-new.js';
|
|
84
86
|
import f7Searchbar from './components/searchbar.js';
|
|
85
87
|
import f7Segmented from './components/segmented.js';
|
|
86
88
|
import f7Sheet from './components/sheet.js';
|
|
@@ -96,6 +98,8 @@ import f7Tab from './components/tab.js';
|
|
|
96
98
|
import f7Tabs from './components/tabs.js';
|
|
97
99
|
import f7TextEditor from './components/text-editor.js';
|
|
98
100
|
import f7Toggle from './components/toggle.js';
|
|
101
|
+
import f7ToolbarNew from './components/toolbar-new.js';
|
|
102
|
+
import f7ToolbarPaneNew from './components/toolbar-pane-new.js';
|
|
99
103
|
import f7Toolbar from './components/toolbar.js';
|
|
100
104
|
import f7TreeviewItem from './components/treeview-item.js';
|
|
101
105
|
import f7Treeview from './components/treeview.js';
|
|
@@ -103,6 +107,6 @@ import f7UseIcon from './components/use-icon.js';
|
|
|
103
107
|
import f7View from './components/view.js';
|
|
104
108
|
import f7Views from './components/views.js';
|
|
105
109
|
|
|
106
|
-
export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
|
|
110
|
+
export { f7AccordionContent, f7AccordionItem, f7AccordionToggle, f7Accordion, f7ActionsButton, f7ActionsGroup, f7ActionsLabel, f7Actions, f7App, f7AreaChart, f7Badge, f7BlockFooter, f7BlockHeader, f7BlockTitle, f7Block, f7BreadcrumbsCollapsed, f7BreadcrumbsItem, f7BreadcrumbsSeparator, f7Breadcrumbs, f7Button, f7CardContent, f7CardFooter, f7CardHeader, f7Card, f7Checkbox, f7Chip, f7FabBackdrop, f7FabButton, f7FabButtons, f7Fab, f7Gauge, f7Icon, f7Input, f7Link, f7ListButton, f7ListGroup, f7ListIndex, f7ListInput, f7ListItem, f7List, f7LoginScreenTitle, f7LoginScreen, f7Message, f7MessagebarAttachment, f7MessagebarAttachments, f7MessagebarSheetImage, f7MessagebarSheetItem, f7MessagebarSheet, f7Messagebar, f7MessagesTitle, f7Messages, f7NavLeft, f7NavRight, f7NavTitleLarge, f7NavTitle, f7NavbarNew, f7Navbar, f7PageContent, f7Page, f7Panel, f7PhotoBrowser, f7PieChart, f7Popover, f7Popup, f7Preloader, f7Progressbar, f7Radio, f7Range, f7RoutableModals, f7SearchbarNew, f7Searchbar, f7Segmented, f7Sheet, f7SkeletonAvatar, f7SkeletonBlock, f7SkeletonImage, f7SkeletonText, f7Stepper, f7Subnavbar, f7SwipeoutActions, f7SwipeoutButton, f7Tab, f7Tabs, f7TextEditor, f7Toggle, f7ToolbarNew, f7ToolbarPaneNew, f7Toolbar, f7TreeviewItem, f7Treeview, f7UseIcon, f7View, f7Views }
|
|
107
111
|
export { f7, f7ready, theme, useStore, setTheme };
|
|
108
112
|
export default Framework7Vue;
|