@xenknight/framework7-vue 0.0.6 → 0.0.8
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/navbar-new.d.ts +20 -0
- package/components/navbar-new.js +248 -0
- package/components/page.js +27 -3
- 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
|
@@ -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
|
@@ -78,7 +78,7 @@ export default {
|
|
|
78
78
|
const onPageInit = page => {
|
|
79
79
|
if (elRef.value !== page.el) return;
|
|
80
80
|
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) {
|
|
81
|
+
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
82
|
hasSubnavbar = true;
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -86,6 +86,9 @@ export default {
|
|
|
86
86
|
if (page.$navbarEl && page.$navbarEl.hasClass('navbar-large')) {
|
|
87
87
|
hasNavbarLarge = true;
|
|
88
88
|
}
|
|
89
|
+
if (page.$navbarNewEl && page.$navbarNewEl.hasClass('navbar-new-large')) {
|
|
90
|
+
hasNavbarLarge = true;
|
|
91
|
+
}
|
|
89
92
|
}
|
|
90
93
|
emit('page:init', page);
|
|
91
94
|
};
|
|
@@ -157,6 +160,20 @@ export default {
|
|
|
157
160
|
if (elRef.value !== pageEl) return;
|
|
158
161
|
hasNavbarLargeCollapsed = false;
|
|
159
162
|
};
|
|
163
|
+
const onNavbarNewCollapse = navbarEl => {
|
|
164
|
+
if (!elRef.value || !navbarEl) return;
|
|
165
|
+
const pageEl = navbarEl.closest('.page');
|
|
166
|
+
if (pageEl === elRef.value) {
|
|
167
|
+
hasNavbarLargeCollapsed = true;
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const onNavbarNewExpand = navbarEl => {
|
|
171
|
+
if (!elRef.value || !navbarEl) return;
|
|
172
|
+
const pageEl = navbarEl.closest('.page');
|
|
173
|
+
if (pageEl === elRef.value) {
|
|
174
|
+
hasNavbarLargeCollapsed = false;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
160
177
|
const onCardOpened = (cardEl, pageEl) => {
|
|
161
178
|
if (elRef.value !== pageEl) return;
|
|
162
179
|
hasCardExpandableOpened = true;
|
|
@@ -208,6 +225,8 @@ export default {
|
|
|
208
225
|
f7.on('pageMasterUnstack', onPageMasterUnstack);
|
|
209
226
|
f7.on('pageNavbarLargeCollapsed', onPageNavbarLargeCollapsed);
|
|
210
227
|
f7.on('pageNavbarLargeExpanded', onPageNavbarLargeExpanded);
|
|
228
|
+
f7.on('navbarNewCollapse', onNavbarNewCollapse);
|
|
229
|
+
f7.on('navbarNewExpand', onNavbarNewExpand);
|
|
211
230
|
f7.on('cardOpened', onCardOpened);
|
|
212
231
|
f7.on('cardClose', onCardClose);
|
|
213
232
|
f7.on('pageTabShow', onPageTabShow);
|
|
@@ -231,6 +250,8 @@ export default {
|
|
|
231
250
|
f7.off('pageMasterUnstack', onPageMasterUnstack);
|
|
232
251
|
f7.off('pageNavbarLargeCollapsed', onPageNavbarLargeCollapsed);
|
|
233
252
|
f7.off('pageNavbarLargeExpanded', onPageNavbarLargeExpanded);
|
|
253
|
+
f7.off('navbarNewCollapse', onNavbarNewCollapse);
|
|
254
|
+
f7.off('navbarNewExpand', onNavbarNewExpand);
|
|
234
255
|
f7.off('cardOpened', onCardOpened);
|
|
235
256
|
f7.off('cardClose', onCardClose);
|
|
236
257
|
f7.off('pageTabShow', onPageTabShow);
|
|
@@ -251,7 +272,7 @@ export default {
|
|
|
251
272
|
'page-with-card-opened': hasCardExpandableOpened === true,
|
|
252
273
|
'login-screen-page': props.loginScreen
|
|
253
274
|
}, colorClasses(props)));
|
|
254
|
-
const fixedTags = 'navbar toolbar tabbar subnavbar searchbar messagebar fab list-index panel'.split(' ').map(tagName => `f7-${tagName}`);
|
|
275
|
+
const fixedTags = 'navbar navbar-new toolbar tabbar subnavbar searchbar messagebar fab list-index panel'.split(' ').map(tagName => `f7-${tagName}`);
|
|
255
276
|
return () => {
|
|
256
277
|
const fixedList = [];
|
|
257
278
|
const staticList = [];
|
|
@@ -277,6 +298,9 @@ export default {
|
|
|
277
298
|
if (tag === 'f7-navbar') {
|
|
278
299
|
if (vnode.props && (vnode.props.large || vnode.props.large === '')) hasNavbarLargeComputed = true;
|
|
279
300
|
}
|
|
301
|
+
if (tag === 'f7-navbar-new') {
|
|
302
|
+
if (vnode.props && (vnode.props.large || vnode.props.largeTransparent || vnode.props.large === '')) hasNavbarLargeComputed = true;
|
|
303
|
+
}
|
|
280
304
|
if (typeof hasMessages === 'undefined' && tag === 'f7-messages') hasMessages = true;
|
|
281
305
|
if (fixedTags.indexOf(tag) >= 0) {
|
|
282
306
|
isFixedTag = true;
|
|
@@ -290,7 +314,7 @@ export default {
|
|
|
290
314
|
if ((hasSubnavbarComputed || hasSubnavbar) && typeof props.subnavbar === 'undefined' && typeof props.withSubnavbar === 'undefined' && classesValue.indexOf('page-with-subnavbar') < 0) {
|
|
291
315
|
classesValue += ' page-with-subnavbar';
|
|
292
316
|
}
|
|
293
|
-
if ((hasNavbarLargeComputed || hasNavbarLarge) && typeof props.navbarLarge === 'undefined' && typeof props.withNavbarLarge === 'undefined' && classesValue.indexOf('page-with-navbar-large') < 0) {
|
|
317
|
+
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
318
|
classesValue += ' page-with-navbar-large';
|
|
295
319
|
}
|
|
296
320
|
if (!props.pageContent) {
|
|
@@ -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.7
|
|
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;
|