framework7 7.0.0-beta.10 → 7.0.0-beta.11

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.
Files changed (109) hide show
  1. package/components/actions/actions-class.js +6 -1
  2. package/components/actions/actions-rtl.css +1 -1
  3. package/components/actions/actions.css +1 -1
  4. package/components/actions/actions.d.ts +2 -0
  5. package/components/actions/actions.js +1 -0
  6. package/components/actions/actions.lazy.js +1 -1
  7. package/components/actions/actions.less +3 -0
  8. package/components/breadcrumbs/breadcrumbs-aurora.less +2 -0
  9. package/components/breadcrumbs/breadcrumbs-ios.less +2 -0
  10. package/components/breadcrumbs/breadcrumbs-md.less +2 -0
  11. package/components/breadcrumbs/breadcrumbs-rtl.css +1 -0
  12. package/components/breadcrumbs/breadcrumbs-vars.less +36 -0
  13. package/components/breadcrumbs/breadcrumbs.css +1 -0
  14. package/components/breadcrumbs/breadcrumbs.d.ts +15 -0
  15. package/components/breadcrumbs/breadcrumbs.js +13 -0
  16. package/components/breadcrumbs/breadcrumbs.lazy.js +1 -0
  17. package/components/breadcrumbs/breadcrumbs.less +100 -0
  18. package/components/calendar/calendar-class.js +206 -122
  19. package/components/calendar/calendar-rtl.css +1 -1
  20. package/components/calendar/calendar-vars.less +6 -10
  21. package/components/calendar/calendar.css +1 -1
  22. package/components/calendar/calendar.d.ts +2 -0
  23. package/components/calendar/calendar.js +1 -0
  24. package/components/calendar/calendar.lazy.js +1 -1
  25. package/components/calendar/calendar.less +20 -16
  26. package/components/list-index/list-index.d.ts +1 -1
  27. package/components/modal/modal-class.js +10 -0
  28. package/components/notification/notification.d.ts +4 -4
  29. package/components/picker/picker-class.js +6 -6
  30. package/components/picker/picker-column.js +34 -270
  31. package/components/picker/picker-rtl.css +1 -1
  32. package/components/picker/picker.css +1 -1
  33. package/components/picker/picker.d.ts +2 -13
  34. package/components/picker/picker.js +0 -5
  35. package/components/picker/picker.lazy.js +1 -1
  36. package/components/picker/picker.less +28 -10
  37. package/components/popover/popover-class.js +15 -2
  38. package/components/popover/popover-rtl.css +1 -1
  39. package/components/popover/popover.css +1 -1
  40. package/components/popover/popover.d.ts +2 -0
  41. package/components/popover/popover.js +1 -0
  42. package/components/popover/popover.lazy.js +1 -1
  43. package/components/popover/popover.less +3 -0
  44. package/components/popup/popup-class.js +6 -1
  45. package/components/popup/popup-rtl.css +1 -1
  46. package/components/popup/popup.css +1 -1
  47. package/components/popup/popup.d.ts +4 -0
  48. package/components/popup/popup.js +1 -0
  49. package/components/popup/popup.lazy.js +1 -1
  50. package/components/popup/popup.less +4 -0
  51. package/components/preloader/preloader.d.ts +4 -0
  52. package/components/progressbar/progressbar-aurora.less +32 -13
  53. package/components/progressbar/progressbar-ios.less +19 -7
  54. package/components/progressbar/progressbar-md.less +64 -28
  55. package/components/progressbar/progressbar-rtl.css +1 -1
  56. package/components/progressbar/progressbar.css +1 -1
  57. package/components/progressbar/progressbar.js +1 -1
  58. package/components/progressbar/progressbar.lazy.js +1 -1
  59. package/components/progressbar/progressbar.less +16 -4
  60. package/components/range/range.d.ts +23 -5
  61. package/components/sheet/sheet-class.js +6 -1
  62. package/components/sheet/sheet-rtl.css +1 -1
  63. package/components/sheet/sheet.css +1 -1
  64. package/components/sheet/sheet.d.ts +2 -0
  65. package/components/sheet/sheet.js +1 -0
  66. package/components/sheet/sheet.lazy.js +1 -1
  67. package/components/sheet/sheet.less +3 -0
  68. package/components/sortable/sortable.d.ts +5 -1
  69. package/components/sortable/sortable.js +15 -2
  70. package/components/sortable/sortable.lazy.js +1 -1
  71. package/components/swiper/swiper-rtl.css +1 -1
  72. package/components/swiper/swiper.css +1 -1
  73. package/components/swiper/swiper.lazy.js +1 -1
  74. package/components/tabs/tabs.js +4 -5
  75. package/components/tabs/tabs.lazy.js +1 -1
  76. package/components/toast/toast.d.ts +2 -2
  77. package/components/toolbar/toolbar-aurora.less +0 -13
  78. package/components/toolbar/toolbar-md.less +0 -13
  79. package/components/toolbar/toolbar.js +1 -1
  80. package/components/toolbar/toolbar.less +13 -0
  81. package/components/view/view.d.ts +2 -0
  82. package/components/view/view.js +1 -0
  83. package/framework7-bundle-rtl.css +249 -150
  84. package/framework7-bundle-rtl.min.css +4 -4
  85. package/framework7-bundle.css +234 -134
  86. package/framework7-bundle.esm.js +5 -4
  87. package/framework7-bundle.js +927 -713
  88. package/framework7-bundle.js.map +1 -1
  89. package/framework7-bundle.less +4 -3
  90. package/framework7-bundle.min.css +4 -4
  91. package/framework7-bundle.min.js +4 -4
  92. package/framework7-bundle.min.js.map +1 -1
  93. package/framework7-lite-bundle.esm.js +5 -4
  94. package/framework7-lite.esm.js +3 -3
  95. package/framework7-rtl.css +12 -21
  96. package/framework7-rtl.min.css +4 -4
  97. package/framework7-types.d.ts +5 -1
  98. package/framework7.css +11 -19
  99. package/framework7.d.ts +4 -0
  100. package/framework7.esm.js +3 -3
  101. package/framework7.js +38 -13
  102. package/framework7.js.map +1 -1
  103. package/framework7.less +3 -3
  104. package/framework7.min.css +4 -4
  105. package/framework7.min.js +4 -4
  106. package/framework7.min.js.map +1 -1
  107. package/modules/router/back.js +11 -1
  108. package/modules/router/tab.js +1 -1
  109. package/package.json +9 -5
@@ -211,12 +211,11 @@ const Tab = {
211
211
  if ($tabLinkEl && $tabLinkEl.length > 0) {
212
212
  $tabLinkEl.addClass('tab-link-active'); // Material Highlight
213
213
 
214
- if (app.theme !== 'ios' && app.toolbar) {
215
- const $tabbarEl = $tabLinkEl.parents('.tabbar, .tabbar-labels');
214
+ const $tabbarEl = $tabLinkEl.parents('.tabbar, .tabbar-labels');
215
+ const hasHighlight = app.toolbar && $tabbarEl.length > 0 && ($tabbarEl.hasClass('tabbar-highlight') || app.theme !== 'ios');
216
216
 
217
- if ($tabbarEl.length > 0) {
218
- app.toolbar.setHighlight($tabbarEl);
219
- }
217
+ if (hasHighlight) {
218
+ app.toolbar.setHighlight($tabbarEl);
220
219
  }
221
220
  }
222
221
  }
@@ -1 +1 @@
1
- (function framework7ComponentLoader(t,a){void 0===a&&(a=!0);var e=t.$,n=t.utils,i=(t.getDevice,t.getSupport,t.Class,t.Modal,t.ConstructorMethods,t.ModalMethods,n.extend);const s={show(...t){const a=this;let n,i,s,r,l;1===t.length&&t[0]&&t[0].constructor===Object?(n=t[0].tabEl,i=t[0].tabLinkEl,s=t[0].animate,r=t[0].tabRoute,l=t[0].animatedInit):([n,i,s,r]=t,"boolean"==typeof t[1]&&([n,s,i,r]=t,t.length>2&&i.constructor===Object&&([n,s,r,i]=t))),void 0===s&&(s=!0);const o=e(n);if(r&&o[0]&&(o[0].f7TabRoute=r),!l&&(0===o.length||o.hasClass("tab-active")))return{$newTabEl:o,newTabEl:o[0]};let b;i&&(b=e(i));const h=o.parent(".tabs");if(0===h.length)return{$newTabEl:o,newTabEl:o[0]};a.swipeout&&(a.swipeout.allowOpen=!0);const d=[];function g(){d.forEach((t=>{t()}))}let c,p=!1;if(h.parent().hasClass("tabs-animated-wrap")){h.parent()[s?"removeClass":"addClass"]("not-animated");const t=parseFloat(h.css("transition-duration").replace(",","."));s&&t&&(h.transitionEnd(g),p=!0);const e=100*(a.rtl?o.index():-o.index());h.transform(`translate3d(${e}%,0,0)`)}h.parent().hasClass("tabs-swipeable-wrap")&&a.swiper&&(c=h.parent()[0].swiper,c&&c.activeIndex!==o.index()?(p=!0,c.once("slideChangeTransitionEnd",(()=>{g()})).slideTo(o.index(),s?void 0:0)):c&&c.animating&&(p=!0,c.once("slideChangeTransitionEnd",(()=>{g()}))));const u=h.children(".tab-active");if(u.removeClass("tab-active"),!l&&(!c||c&&!c.animating||c&&r)&&(u.hasClass("view")&&u.children(".page").length&&u.children(".page").each((t=>{e(t).trigger("page:tabhide"),a.emit("pageTabHide",t)})),u.trigger("tab:hide"),a.emit("tabHide",u[0])),o.addClass("tab-active"),!l&&(!c||c&&!c.animating||c&&r)&&(o.hasClass("view")&&o.children(".page").length&&o.children(".page").each((t=>{e(t).trigger("page:tabshow"),a.emit("pageTabShow",t)})),o.trigger("tab:show"),a.emit("tabShow",o[0])),!b&&(b=e("string"==typeof n?`.tab-link[href="${n}"]`:`.tab-link[href="#${o.attr("id")}"]`),(!b||b&&0===b.length)&&e("[data-tab]").each((t=>{o.is(e(t).attr("data-tab"))&&(b=e(t))})),r&&(!b||b&&0===b.length)&&(b=e(`[data-route-tab-id="${r.route.tab.id}"]`),0===b.length&&(b=e(`.tab-link[href="${r.url}"]`))),b.length>1&&o.parents(".page").length&&(b=b.filter((t=>e(t).parents(".page")[0]===o.parents(".page")[0])),"ios"===a.theme&&0===b.length&&r))){const t=o.parents(".page"),n=e(a.navbar.getElByPage(t));b=n.find(`[data-route-tab-id="${r.route.tab.id}"]`),0===b.length&&(b=n.find(`.tab-link[href="${r.url}"]`))}if(b.length>0){let t;if(u&&u.length>0){const a=u.attr("id");a&&(t=e(`.tab-link[href="#${a}"]`),(!t||t&&0===t.length)&&(t=e(`.tab-link[data-route-tab-id="${a}"]`))),(!t||t&&0===t.length)&&e("[data-tab]").each((a=>{u.is(e(a).attr("data-tab"))&&(t=e(a))})),(!t||t&&0===t.length)&&(t=b.siblings(".tab-link-active"))}else r&&(t=b.siblings(".tab-link-active"));if(t&&t.length>1&&u&&u.parents(".page").length&&(t=t.filter((t=>e(t).parents(".page")[0]===u.parents(".page")[0]))),t&&t.length>0&&t.removeClass("tab-link-active"),b&&b.length>0&&(b.addClass("tab-link-active"),"ios"!==a.theme&&a.toolbar)){const t=b.parents(".tabbar, .tabbar-labels");t.length>0&&a.toolbar.setHighlight(t)}}return{$newTabEl:o,newTabEl:o[0],$oldTabEl:u,oldTabEl:u[0],onTabsChanged:function(t){d.push(t)},animated:p}}};var r={name:"tabs",create(){i(this,{tab:{show:s.show.bind(this)}})},on:{"pageInit tabMounted":function(t){const a=e(t.el||t).find(".tabs-animated-wrap > .tabs > .tab-active")[0];if(!a)return;this.tab.show({tabEl:a,animatedInit:!0,animate:!1})}},clicks:{".tab-link":function(t,a={}){if(t.attr("href")&&0===t.attr("href").indexOf("#")||t.attr("data-tab")){this.tab.show({tabEl:a.tab||t.attr("href"),tabLinkEl:t,animate:a.animate})}}}};if(a){if(t.prototype.modules&&t.prototype.modules[r.name])return;t.use(r),t.instance&&(t.instance.useModuleParams(r,t.instance.params),t.instance.useModule(r))}return r}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
1
+ (function framework7ComponentLoader(t,a){void 0===a&&(a=!0);var e=t.$,n=t.utils,i=(t.getDevice,t.getSupport,t.Class,t.Modal,t.ConstructorMethods,t.ModalMethods,n.extend);const s={show(...t){const a=this;let n,i,s,r,l;1===t.length&&t[0]&&t[0].constructor===Object?(n=t[0].tabEl,i=t[0].tabLinkEl,s=t[0].animate,r=t[0].tabRoute,l=t[0].animatedInit):([n,i,s,r]=t,"boolean"==typeof t[1]&&([n,s,i,r]=t,t.length>2&&i.constructor===Object&&([n,s,r,i]=t))),void 0===s&&(s=!0);const o=e(n);if(r&&o[0]&&(o[0].f7TabRoute=r),!l&&(0===o.length||o.hasClass("tab-active")))return{$newTabEl:o,newTabEl:o[0]};let b;i&&(b=e(i));const h=o.parent(".tabs");if(0===h.length)return{$newTabEl:o,newTabEl:o[0]};a.swipeout&&(a.swipeout.allowOpen=!0);const d=[];function g(){d.forEach((t=>{t()}))}let c,p=!1;if(h.parent().hasClass("tabs-animated-wrap")){h.parent()[s?"removeClass":"addClass"]("not-animated");const t=parseFloat(h.css("transition-duration").replace(",","."));s&&t&&(h.transitionEnd(g),p=!0);const e=100*(a.rtl?o.index():-o.index());h.transform(`translate3d(${e}%,0,0)`)}h.parent().hasClass("tabs-swipeable-wrap")&&a.swiper&&(c=h.parent()[0].swiper,c&&c.activeIndex!==o.index()?(p=!0,c.once("slideChangeTransitionEnd",(()=>{g()})).slideTo(o.index(),s?void 0:0)):c&&c.animating&&(p=!0,c.once("slideChangeTransitionEnd",(()=>{g()}))));const u=h.children(".tab-active");if(u.removeClass("tab-active"),!l&&(!c||c&&!c.animating||c&&r)&&(u.hasClass("view")&&u.children(".page").length&&u.children(".page").each((t=>{e(t).trigger("page:tabhide"),a.emit("pageTabHide",t)})),u.trigger("tab:hide"),a.emit("tabHide",u[0])),o.addClass("tab-active"),!l&&(!c||c&&!c.animating||c&&r)&&(o.hasClass("view")&&o.children(".page").length&&o.children(".page").each((t=>{e(t).trigger("page:tabshow"),a.emit("pageTabShow",t)})),o.trigger("tab:show"),a.emit("tabShow",o[0])),!b&&(b=e("string"==typeof n?`.tab-link[href="${n}"]`:`.tab-link[href="#${o.attr("id")}"]`),(!b||b&&0===b.length)&&e("[data-tab]").each((t=>{o.is(e(t).attr("data-tab"))&&(b=e(t))})),r&&(!b||b&&0===b.length)&&(b=e(`[data-route-tab-id="${r.route.tab.id}"]`),0===b.length&&(b=e(`.tab-link[href="${r.url}"]`))),b.length>1&&o.parents(".page").length&&(b=b.filter((t=>e(t).parents(".page")[0]===o.parents(".page")[0])),"ios"===a.theme&&0===b.length&&r))){const t=o.parents(".page"),n=e(a.navbar.getElByPage(t));b=n.find(`[data-route-tab-id="${r.route.tab.id}"]`),0===b.length&&(b=n.find(`.tab-link[href="${r.url}"]`))}if(b.length>0){let t;if(u&&u.length>0){const a=u.attr("id");a&&(t=e(`.tab-link[href="#${a}"]`),(!t||t&&0===t.length)&&(t=e(`.tab-link[data-route-tab-id="${a}"]`))),(!t||t&&0===t.length)&&e("[data-tab]").each((a=>{u.is(e(a).attr("data-tab"))&&(t=e(a))})),(!t||t&&0===t.length)&&(t=b.siblings(".tab-link-active"))}else r&&(t=b.siblings(".tab-link-active"));if(t&&t.length>1&&u&&u.parents(".page").length&&(t=t.filter((t=>e(t).parents(".page")[0]===u.parents(".page")[0]))),t&&t.length>0&&t.removeClass("tab-link-active"),b&&b.length>0){b.addClass("tab-link-active");const t=b.parents(".tabbar, .tabbar-labels");a.toolbar&&t.length>0&&(t.hasClass("tabbar-highlight")||"ios"!==a.theme)&&a.toolbar.setHighlight(t)}}return{$newTabEl:o,newTabEl:o[0],$oldTabEl:u,oldTabEl:u[0],onTabsChanged:function(t){d.push(t)},animated:p}}};var r={name:"tabs",create(){i(this,{tab:{show:s.show.bind(this)}})},on:{"pageInit tabMounted":function(t){const a=e(t.el||t).find(".tabs-animated-wrap > .tabs > .tab-active")[0];if(!a)return;this.tab.show({tabEl:a,animatedInit:!0,animate:!1})}},clicks:{".tab-link":function(t,a={}){if(t.attr("href")&&0===t.attr("href").indexOf("#")||t.attr("data-tab")){this.tab.show({tabEl:a.tab||t.attr("href"),tabLinkEl:t,animate:a.animate})}}}};if(a){if(t.prototype.modules&&t.prototype.modules[r.name])return;t.use(r),t.instance&&(t.instance.useModuleParams(r,t.instance.params),t.instance.useModule(r))}return r}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
@@ -60,9 +60,9 @@ export namespace Toast {
60
60
  params: Parameters;
61
61
 
62
62
  /** Open toast */
63
- open(): Toast;
63
+ open(animate?: boolean): Toast;
64
64
  /** Close toast */
65
- close(): Toast;
65
+ close(animate?: boolean): Toast;
66
66
  /** Destroy toast */
67
67
  destroy(): void;
68
68
  }
@@ -10,19 +10,6 @@
10
10
  }
11
11
  .tabbar,
12
12
  .tabbar-labels {
13
- .tab-link-highlight {
14
- position: absolute;
15
- left: 0;
16
- height: 2px;
17
- background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color));
18
- transition-duration: 300ms;
19
- .ltr({
20
- left: 0;
21
- });
22
- .rtl({
23
- right: 0;
24
- });
25
- }
26
13
  .toolbar-inner {
27
14
  padding-left: 0;
28
15
  padding-right: 0;
@@ -26,19 +26,6 @@
26
26
  overflow: hidden;
27
27
  position: relative;
28
28
  }
29
- .tab-link-highlight {
30
- position: absolute;
31
- left: 0;
32
- height: 2px;
33
- background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color));
34
- transition-duration: 300ms;
35
- .ltr({
36
- left: 0;
37
- });
38
- .rtl({
39
- right: 0;
40
- });
41
- }
42
29
  }
43
30
 
44
31
  .tabbar-labels {
@@ -3,8 +3,8 @@ import { nextFrame, bindMethods } from '../../shared/utils.js';
3
3
  const Toolbar = {
4
4
  setHighlight(tabbarEl) {
5
5
  const app = this;
6
- if (app.theme === 'ios') return;
7
6
  const $tabbarEl = $(tabbarEl);
7
+ if (app.theme === 'ios' && !$tabbarEl.hasClass('tabbar-highlight')) return;
8
8
  if ($tabbarEl.length === 0 || !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))) return;
9
9
  let $highlightEl = $tabbarEl.find('.tab-link-highlight');
10
10
  const tabLinksCount = $tabbarEl.find('.tab-link').length;
@@ -153,6 +153,19 @@
153
153
  height: var(--f7-tabbar-icon-size);
154
154
  line-height: var(--f7-tabbar-icon-size);
155
155
  }
156
+ .tab-link-highlight {
157
+ position: absolute;
158
+ left: 0;
159
+ height: 2px;
160
+ background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color));
161
+ transition-duration: 300ms;
162
+ .ltr({
163
+ left: 0;
164
+ });
165
+ .rtl({
166
+ right: 0;
167
+ });
168
+ }
156
169
  }
157
170
  .tabbar-labels {
158
171
  --f7-toolbar-height: var(--f7-tabbar-labels-height);
@@ -158,6 +158,8 @@ export namespace View {
158
158
  browserHistoryInitialMatch?: boolean;
159
159
  /** When enabled (by default), it will store router history in localStorage and try to restore it on next web app visit */
160
160
  browserHistoryStoreHistory?: boolean;
161
+ /** When "replace" (by default), it will replace state on routable tabs change, otherwise (if "push"), it will add to history every routable tab change, so it will be possible to switch back between tabs with browser back button */
162
+ browserHistoryTabs?: 'replace' | 'push';
161
163
  /** Object with events handlers.. */
162
164
  on?: {
163
165
  [event in keyof Events]?: Events[event];
@@ -98,6 +98,7 @@ export default {
98
98
  browserHistoryOnLoad: true,
99
99
  browserHistoryInitialMatch: false,
100
100
  browserHistoryStoreHistory: true,
101
+ browserHistoryTabs: 'replace',
101
102
  // Animate Pages
102
103
  animate: true,
103
104
  // iOS Dynamic Navbar