framework7-vue 9.0.4 → 9.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/framework7-vue.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Framework7 Vue 9.0.4
2
+ * Framework7 Vue 9.1.0
3
3
  * Build full featured iOS & Android apps using Framework7 & Vue
4
4
  * https://framework7.io/vue/
5
5
  *
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: April 29, 2026
10
+ * Released on: June 29, 2026
11
11
  */
12
12
  import Framework7Vue from './shared/plugin.js';
13
13
  import { f7, f7ready, theme } from './shared/f7.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "framework7-vue",
3
- "version": "9.0.4",
3
+ "version": "9.1.0",
4
4
  "description": "Build full featured iOS & Android apps using Framework7 & Vue",
5
5
  "type": "module",
6
6
  "exports": {
@@ -61,5 +61,5 @@
61
61
  "type": "patreon",
62
62
  "url": "https://www.patreon.com/framework7"
63
63
  },
64
- "releaseDate": "April 29, 2026"
64
+ "releaseDate": "June 29, 2026"
65
65
  }
@@ -55,7 +55,7 @@ export default {
55
55
  const childrenAfter = getChildrenArray(el);
56
56
  if (hasSameChildren(childrenBefore, childrenAfter)) return;
57
57
  f7events.off('viewRouterDidUpdate', onDidUpdate);
58
- const pageEl = el.children[el.children.length - 1];
58
+ const pageEl = childrenAfter.find(child => child.classList.contains('page') && !childrenBefore.includes(child)) || el.children[el.children.length - 1];
59
59
  pageData.el = pageEl;
60
60
  resolve(pageEl);
61
61
  resolved = true;
@@ -16,9 +16,14 @@ export const routerOpenIn = (router, url, options) => {
16
16
  }
17
17
  }
18
18
  };
19
+ // Allow passing modal-specific params via a `<type>Options` object
20
+ // (e.g. sheetOptions, popupOptions, popoverOptions, panelOptions, loginScreenOptions)
21
+ const openInType = options.openIn.split(':')[0];
19
22
  const params = {
20
- ...options
23
+ ...options,
24
+ ...(options[`${openInType}Options`] || {})
21
25
  };
26
+ delete params[`${openInType}Options`];
22
27
  if (options.openIn === 'popup') {
23
28
  params.component = {
24
29
  setup() {
package/shared/utils.js CHANGED
@@ -34,6 +34,7 @@ export function extend(...args) {
34
34
  const keysArray = Object.keys(Object(nextSource));
35
35
  for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
36
36
  const nextKey = keysArray[nextIndex];
37
+ if (nextKey === '__proto__' || nextKey === 'constructor' || nextKey === 'prototype') continue; // eslint-disable-line
37
38
  const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
38
39
  if (desc !== undefined && desc.enumerable) {
39
40
  if (!deep) {