framework7 7.0.9 → 8.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/accordion/accordion.js +2 -16
- package/components/accordion/accordion.less +0 -3
- package/components/actions/actions-class.js +13 -58
- package/components/actions/actions-ios.less +42 -0
- package/components/actions/actions-md.less +12 -0
- package/components/actions/actions-rtl.css +1 -1
- package/components/actions/actions-vars.less +17 -42
- package/components/actions/actions.css +1 -1
- package/components/actions/actions.d.ts +2 -2
- package/components/actions/actions.js +0 -4
- package/components/actions/actions.lazy.js +1 -1
- package/components/actions/actions.less +5 -35
- package/components/app/app-class.d.ts +14 -12
- package/components/app/app-class.js +93 -75
- package/components/app/app-ios.less +0 -2
- package/components/app/app-md.less +0 -2
- package/components/app/app-vars.less +13 -96
- package/components/app/app.less +1 -4
- package/components/app/load-module.js +17 -36
- package/components/area-chart/area-chart-class.js +8 -64
- package/components/area-chart/area-chart.js +0 -3
- package/components/area-chart/area-chart.less +0 -3
- package/components/autocomplete/autocomplete-class.js +30 -175
- package/components/autocomplete/autocomplete-ios.less +0 -8
- package/components/autocomplete/autocomplete-rtl.css +1 -1
- package/components/autocomplete/autocomplete-vars.less +8 -22
- package/components/autocomplete/autocomplete.css +1 -1
- package/components/autocomplete/autocomplete.d.ts +1 -3
- package/components/autocomplete/autocomplete.js +1 -6
- package/components/autocomplete/autocomplete.lazy.js +1 -1
- package/components/autocomplete/autocomplete.less +6 -18
- package/components/badge/badge-vars.less +3 -6
- package/components/badge/badge.less +1 -3
- package/components/block/block-vars.less +25 -52
- package/components/block/block.less +37 -12
- package/components/breadcrumbs/breadcrumbs-rtl.css +1 -1
- package/components/breadcrumbs/breadcrumbs-vars.less +31 -15
- package/components/breadcrumbs/breadcrumbs.css +1 -1
- package/components/breadcrumbs/breadcrumbs.js +0 -2
- package/components/breadcrumbs/breadcrumbs.less +4 -10
- package/components/button/button-vars.less +42 -43
- package/components/button/button.less +24 -26
- package/components/calendar/calendar-class.js +81 -401
- package/components/calendar/calendar-rtl.css +1 -1
- package/components/calendar/calendar-vars.less +32 -46
- package/components/calendar/calendar.css +1 -1
- package/components/calendar/calendar.js +6 -4
- package/components/calendar/calendar.lazy.js +1 -1
- package/components/calendar/calendar.less +10 -21
- package/components/card/card-rtl.css +1 -1
- package/components/card/card-vars.less +41 -44
- package/components/card/card.css +1 -1
- package/components/card/card.js +0 -108
- package/components/card/card.less +18 -24
- package/components/checkbox/checkbox-rtl.css +1 -1
- package/components/checkbox/checkbox-vars.less +0 -8
- package/components/checkbox/checkbox.css +1 -1
- package/components/checkbox/checkbox.less +10 -3
- package/components/chip/chip-ios.less +3 -0
- package/components/chip/chip-md.less +4 -3
- package/components/chip/chip-rtl.css +1 -1
- package/components/chip/chip-vars.less +17 -20
- package/components/chip/chip.css +1 -1
- package/components/chip/chip.less +16 -21
- package/components/color-picker/color-picker-class.js +27 -158
- package/components/color-picker/color-picker-rtl.css +1 -1
- package/components/color-picker/color-picker.css +1 -1
- package/components/color-picker/color-picker.js +0 -4
- package/components/color-picker/color-picker.lazy.js +1 -1
- package/components/color-picker/color-picker.less +18 -8
- package/components/color-picker/modules/alpha-slider.js +0 -12
- package/components/color-picker/modules/brightness-slider.js +0 -8
- package/components/color-picker/modules/current-color.js +0 -2
- package/components/color-picker/modules/hex.js +0 -12
- package/components/color-picker/modules/hs-spectrum.js +0 -20
- package/components/color-picker/modules/hsb-sliders.js +0 -18
- package/components/color-picker/modules/hue-slider.js +0 -7
- package/components/color-picker/modules/initial-current-colors.js +0 -7
- package/components/color-picker/modules/palette.js +2 -10
- package/components/color-picker/modules/rgb-bars.js +0 -17
- package/components/color-picker/modules/rgb-sliders.js +0 -17
- package/components/color-picker/modules/sb-spectrum.js +0 -20
- package/components/color-picker/modules/wheel.js +0 -28
- package/components/contacts-list/contacts-list-md.less +4 -3
- package/components/contacts-list/contacts-list-rtl.css +1 -1
- package/components/contacts-list/contacts-list-vars.less +3 -15
- package/components/contacts-list/contacts-list.css +1 -1
- package/components/contacts-list/contacts-list.less +0 -3
- package/components/data-table/data-table-class.js +10 -32
- package/components/data-table/data-table-rtl.css +1 -1
- package/components/data-table/data-table-vars.less +6 -39
- package/components/data-table/data-table.css +1 -1
- package/components/data-table/data-table.js +0 -8
- package/components/data-table/data-table.less +0 -3
- package/components/dialog/dialog-class.js +7 -41
- package/components/dialog/dialog-ios.less +0 -3
- package/components/dialog/dialog-md.less +9 -9
- package/components/dialog/dialog-rtl.css +1 -1
- package/components/dialog/dialog-vars.less +25 -70
- package/components/dialog/dialog.css +1 -1
- package/components/dialog/dialog.d.ts +2 -2
- package/components/dialog/dialog.js +12 -48
- package/components/dialog/dialog.lazy.js +1 -1
- package/components/dialog/dialog.less +8 -4
- package/components/fab/fab-rtl.css +1 -1
- package/components/fab/fab-vars.less +20 -14
- package/components/fab/fab.css +1 -1
- package/components/fab/fab.js +0 -21
- package/components/fab/fab.less +50 -53
- package/components/form/form.d.ts +4 -4
- package/components/form/form.js +58 -94
- package/components/form/form.lazy.js +1 -1
- package/components/form/form.less +0 -3
- package/components/gauge/gauge-class.js +4 -20
- package/components/gauge/gauge.js +0 -9
- package/components/gauge/gauge.less +0 -3
- package/components/grid/grid-rtl.css +1 -1
- package/components/grid/grid-vars.less +0 -7
- package/components/grid/grid.css +1 -1
- package/components/grid/grid.d.ts +2 -8
- package/components/grid/grid.js +1 -225
- package/components/grid/grid.lazy.js +1 -1
- package/components/grid/grid.less +54 -184
- package/components/icon/icon.less +0 -3
- package/components/infinite-scroll/infinite-scroll-rtl.css +1 -1
- package/components/infinite-scroll/infinite-scroll.css +1 -1
- package/components/infinite-scroll/infinite-scroll.js +0 -16
- package/components/infinite-scroll/infinite-scroll.less +0 -3
- package/components/input/input-ios.less +49 -41
- package/components/input/input-md.less +87 -19
- package/components/input/input-rtl.css +1 -1
- package/components/input/input-vars.less +26 -60
- package/components/input/input.css +1 -1
- package/components/input/input.js +8 -67
- package/components/input/input.less +67 -153
- package/components/link/link-vars.less +0 -5
- package/components/link/link.less +3 -3
- package/components/list/list-md.less +0 -7
- package/components/list/list-vars.less +59 -108
- package/components/list/list.less +122 -90
- package/components/list-index/list-index-class.js +12 -69
- package/components/list-index/list-index-rtl.css +1 -1
- package/components/list-index/list-index-vars.less +0 -7
- package/components/list-index/list-index.css +1 -1
- package/components/list-index/list-index.d.ts +1 -3
- package/components/list-index/list-index.js +0 -8
- package/components/list-index/list-index.lazy.js +1 -1
- package/components/list-index/list-index.less +4 -7
- package/components/login-screen/login-screen-class.js +4 -9
- package/components/login-screen/login-screen-rtl.css +1 -1
- package/components/login-screen/login-screen-vars.less +13 -12
- package/components/login-screen/login-screen.css +1 -1
- package/components/login-screen/login-screen.js +0 -4
- package/components/login-screen/login-screen.less +2 -8
- package/components/messagebar/messagebar-class.js +18 -79
- package/components/messagebar/messagebar-ios.less +36 -0
- package/components/messagebar/messagebar-md.less +96 -16
- package/components/messagebar/messagebar-rtl.css +1 -1
- package/components/messagebar/messagebar-vars.less +27 -50
- package/components/messagebar/messagebar.css +1 -1
- package/components/messagebar/messagebar.js +0 -8
- package/components/messagebar/messagebar.less +11 -42
- package/components/messages/messages-class.js +17 -110
- package/components/messages/messages-ios.less +9 -0
- package/components/messages/messages-md.less +63 -28
- package/components/messages/messages-rtl.css +1 -1
- package/components/messages/messages-vars.less +43 -50
- package/components/messages/messages.css +1 -1
- package/components/messages/messages.js +0 -8
- package/components/messages/messages.lazy.js +1 -1
- package/components/messages/messages.less +0 -11
- package/components/modal/custom-modal-class.js +4 -14
- package/components/modal/modal-class.js +19 -55
- package/components/modal/modal.js +0 -3
- package/components/navbar/navbar-ios.less +3 -39
- package/components/navbar/navbar-md.less +12 -0
- package/components/navbar/navbar-vars.less +20 -49
- package/components/navbar/navbar.d.ts +0 -2
- package/components/navbar/navbar.js +37 -166
- package/components/navbar/navbar.less +4 -26
- package/components/notification/notification-class.js +4 -39
- package/components/notification/notification-md.less +18 -8
- package/components/notification/notification-rtl.css +1 -1
- package/components/notification/notification-vars.less +15 -54
- package/components/notification/notification.css +1 -1
- package/components/notification/notification.js +0 -2
- package/components/notification/notification.lazy.js +1 -1
- package/components/notification/notification.less +0 -3
- package/components/page/page-md.less +40 -10
- package/components/page/page-transitions/circle.less +15 -9
- package/components/page/page-transitions/fade.less +17 -11
- package/components/page/page-transitions/flip.less +9 -4
- package/components/page/page-vars.less +3 -19
- package/components/page/page.less +2 -10
- package/components/panel/panel-class.js +23 -127
- package/components/panel/panel-md.less +9 -0
- package/components/panel/panel-rtl.css +1 -1
- package/components/panel/panel-vars.less +7 -21
- package/components/panel/panel.css +1 -1
- package/components/panel/panel.d.ts +2 -2
- package/components/panel/panel.js +0 -34
- package/components/panel/panel.lazy.js +1 -1
- package/components/panel/panel.less +56 -48
- package/components/panel/resizable-panel.js +2 -32
- package/components/panel/swipe-panel.js +16 -71
- package/components/photo-browser/photo-browser-class.js +41 -171
- package/components/photo-browser/photo-browser-rtl.css +1 -1
- package/components/photo-browser/photo-browser-vars.less +0 -3
- package/components/photo-browser/photo-browser.css +1 -1
- package/components/photo-browser/photo-browser.d.ts +2 -4
- package/components/photo-browser/photo-browser.js +1 -6
- package/components/photo-browser/photo-browser.lazy.js +1 -1
- package/components/photo-browser/photo-browser.less +0 -4
- package/components/picker/picker-class.js +26 -133
- package/components/picker/picker-column.js +11 -31
- package/components/picker/picker-ios.less +10 -0
- package/components/picker/picker-md.less +6 -0
- package/components/picker/picker-rtl.css +1 -1
- package/components/picker/picker-vars.less +9 -25
- package/components/picker/picker.css +1 -1
- package/components/picker/picker.js +0 -4
- package/components/picker/picker.lazy.js +1 -1
- package/components/picker/picker.less +0 -11
- package/components/pie-chart/pie-chart-class.js +8 -31
- package/components/pie-chart/pie-chart.js +0 -3
- package/components/pie-chart/pie-chart.less +0 -3
- package/components/popover/popover-class.js +72 -126
- package/components/popover/popover-ios.less +0 -50
- package/components/popover/popover-rtl.css +1 -1
- package/components/popover/popover-vars.less +6 -23
- package/components/popover/popover.css +1 -1
- package/components/popover/popover.d.ts +2 -0
- package/components/popover/popover.js +1 -12
- package/components/popover/popover.lazy.js +1 -1
- package/components/popover/popover.less +62 -5
- package/components/popup/popup-class.js +12 -78
- package/components/popup/popup-rtl.css +1 -1
- package/components/popup/popup-vars.less +7 -9
- package/components/popup/popup.css +1 -1
- package/components/popup/popup.js +0 -4
- package/components/popup/popup.lazy.js +1 -1
- package/components/popup/popup.less +4 -4
- package/components/preloader/preloader-ios.less +3 -1
- package/components/preloader/preloader-md.less +5 -1
- package/components/preloader/preloader-rtl.css +1 -1
- package/components/preloader/preloader-vars.less +0 -6
- package/components/preloader/preloader.css +1 -1
- package/components/preloader/preloader.js +8 -25
- package/components/preloader/preloader.lazy.js +1 -1
- package/components/preloader/preloader.less +6 -3
- package/components/progressbar/progressbar-rtl.css +1 -1
- package/components/progressbar/progressbar-vars.less +2 -12
- package/components/progressbar/progressbar.css +1 -1
- package/components/progressbar/progressbar.js +2 -31
- package/components/progressbar/progressbar.less +0 -3
- package/components/pull-to-refresh/pull-to-refresh-class.js +15 -107
- package/components/pull-to-refresh/pull-to-refresh-md.less +2 -1
- package/components/pull-to-refresh/pull-to-refresh-rtl.css +1 -1
- package/components/pull-to-refresh/pull-to-refresh-vars.less +0 -4
- package/components/pull-to-refresh/pull-to-refresh.css +1 -1
- package/components/pull-to-refresh/pull-to-refresh.js +0 -8
- package/components/pull-to-refresh/pull-to-refresh.lazy.js +1 -1
- package/components/pull-to-refresh/pull-to-refresh.less +0 -3
- package/components/radio/radio-rtl.css +1 -1
- package/components/radio/radio-vars.less +0 -7
- package/components/radio/radio.css +1 -1
- package/components/radio/radio.less +12 -5
- package/components/range/range-class.js +27 -112
- package/components/range/range-rtl.css +1 -1
- package/components/range/range-vars.less +10 -32
- package/components/range/range.css +1 -1
- package/components/range/range.js +0 -12
- package/components/range/range.less +0 -3
- package/components/searchbar/remove-diacritics.js +0 -4
- package/components/searchbar/searchbar-class.js +17 -138
- package/components/searchbar/searchbar-md.less +41 -16
- package/components/searchbar/searchbar-rtl.css +1 -1
- package/components/searchbar/searchbar-vars.less +25 -76
- package/components/searchbar/searchbar.css +1 -1
- package/components/searchbar/searchbar.d.ts +2 -2
- package/components/searchbar/searchbar.js +0 -15
- package/components/searchbar/searchbar.lazy.js +1 -1
- package/components/searchbar/searchbar.less +14 -28
- package/components/sheet/sheet-class.js +15 -110
- package/components/sheet/sheet-rtl.css +1 -1
- package/components/sheet/sheet-vars.less +17 -6
- package/components/sheet/sheet.css +1 -1
- package/components/sheet/sheet.js +0 -9
- package/components/sheet/sheet.lazy.js +1 -1
- package/components/sheet/sheet.less +10 -3
- package/components/skeleton/skeleton.less +1 -4
- package/components/smart-select/smart-select-class.js +36 -173
- package/components/smart-select/smart-select.d.ts +1 -3
- package/components/smart-select/smart-select.js +1 -14
- package/components/smart-select/smart-select.lazy.js +1 -1
- package/components/smart-select/smart-select.less +0 -3
- package/components/sortable/sortable-rtl.css +1 -1
- package/components/sortable/sortable-vars.less +8 -8
- package/components/sortable/sortable.css +1 -1
- package/components/sortable/sortable.js +0 -44
- package/components/sortable/sortable.less +0 -3
- package/components/statusbar/statusbar.js +0 -36
- package/components/statusbar/statusbar.less +0 -3
- package/components/stepper/stepper-class.js +10 -83
- package/components/stepper/stepper-rtl.css +1 -1
- package/components/stepper/stepper-vars.less +12 -24
- package/components/stepper/stepper.css +1 -1
- package/components/stepper/stepper.js +0 -12
- package/components/stepper/stepper.less +12 -23
- package/components/subnavbar/subnavbar-vars.less +3 -18
- package/components/subnavbar/subnavbar.js +0 -3
- package/components/subnavbar/subnavbar.less +1 -11
- package/components/swipeout/swipeout-rtl.css +1 -1
- package/components/swipeout/swipeout-vars.less +7 -6
- package/components/swipeout/swipeout.css +1 -1
- package/components/swipeout/swipeout.js +2 -99
- package/components/swipeout/swipeout.less +2 -7
- package/components/swiper/swiper-rtl.css +1 -1
- package/components/swiper/swiper.css +1 -1
- package/components/swiper/swiper.js +9 -30
- package/components/swiper/swiper.lazy.js +1 -1
- package/components/swiper/swiper.less +1 -16
- package/components/tabs/tabs-rtl.css +1 -1
- package/components/tabs/tabs.css +1 -1
- package/components/tabs/tabs.js +23 -60
- package/components/tabs/tabs.lazy.js +1 -1
- package/components/tabs/tabs.less +1 -3
- package/components/text-editor/text-editor-class.js +16 -102
- package/components/text-editor/text-editor-rtl.css +1 -1
- package/components/text-editor/text-editor-vars.less +12 -16
- package/components/text-editor/text-editor.css +1 -1
- package/components/text-editor/text-editor.js +0 -8
- package/components/text-editor/text-editor.lazy.js +1 -1
- package/components/text-editor/text-editor.less +0 -6
- package/components/timeline/timeline-rtl.css +1 -1
- package/components/timeline/timeline-vars.less +13 -47
- package/components/timeline/timeline.css +1 -1
- package/components/timeline/timeline.less +2 -9
- package/components/toast/toast-class.js +2 -16
- package/components/toast/toast-rtl.css +1 -1
- package/components/toast/toast-vars.less +5 -9
- package/components/toast/toast.css +1 -1
- package/components/toast/toast.js +0 -3
- package/components/toast/toast.less +0 -3
- package/components/toggle/toggle-class.js +6 -30
- package/components/toggle/toggle-ios.less +5 -1
- package/components/toggle/toggle-md.less +27 -11
- package/components/toggle/toggle-rtl.css +1 -1
- package/components/toggle/toggle-vars.less +19 -21
- package/components/toggle/toggle.css +1 -1
- package/components/toggle/toggle.js +0 -8
- package/components/toggle/toggle.less +0 -4
- package/components/toolbar/toolbar-ios.less +2 -2
- package/components/toolbar/toolbar-md.less +28 -4
- package/components/toolbar/toolbar-vars.less +17 -52
- package/components/toolbar/toolbar.js +5 -43
- package/components/toolbar/toolbar.less +27 -45
- package/components/tooltip/tooltip-class.js +10 -64
- package/components/tooltip/tooltip-rtl.css +1 -1
- package/components/tooltip/tooltip-vars.less +12 -3
- package/components/tooltip/tooltip.css +1 -1
- package/components/tooltip/tooltip.js +0 -15
- package/components/tooltip/tooltip.less +0 -3
- package/components/touch-ripple/touch-ripple-class.js +0 -13
- package/components/touch-ripple/touch-ripple.js +0 -4
- package/components/touch-ripple/touch-ripple.less +1 -5
- package/components/treeview/treeview-rtl.css +1 -1
- package/components/treeview/treeview-vars.less +0 -3
- package/components/treeview/treeview.css +1 -1
- package/components/treeview/treeview.js +2 -11
- package/components/treeview/treeview.lazy.js +1 -1
- package/components/treeview/treeview.less +0 -3
- package/components/typography/typography-rtl.css +1 -1
- package/components/typography/typography.css +1 -1
- package/components/typography/typography.less +25 -3
- package/components/view/resizable-view.js +2 -24
- package/components/view/view-class.js +28 -53
- package/components/view/view.d.ts +0 -14
- package/components/view/view.js +8 -32
- package/components/view/view.less +1 -4
- package/components/virtual-list/virtual-list-class.js +58 -146
- package/components/virtual-list/virtual-list.d.ts +1 -1
- package/components/virtual-list/virtual-list.js +0 -2
- package/components/virtual-list/virtual-list.lazy.js +1 -1
- package/components/virtual-list/virtual-list.less +0 -3
- package/framework7-bundle-rtl.css +3593 -5977
- package/framework7-bundle-rtl.min.css +3 -3
- package/framework7-bundle.css +3591 -5978
- package/framework7-bundle.esm.js +4 -10
- package/framework7-bundle.js +6063 -12044
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +2 -27
- package/framework7-bundle.min.css +3 -3
- package/framework7-bundle.min.js +3 -3
- package/framework7-bundle.min.js.map +1 -1
- package/framework7-lite-bundle.esm.js +4 -10
- package/framework7-lite.esm.js +4 -6
- package/framework7-lite.js +31 -0
- package/framework7-rtl.css +803 -1591
- package/framework7-rtl.min.css +3 -3
- package/framework7-types.d.ts +1 -32
- package/framework7.css +803 -1594
- package/framework7.d.ts +1 -32
- package/framework7.esm.js +4 -6
- package/framework7.js +1770 -3407
- package/framework7.js.map +1 -1
- package/framework7.less +2 -23
- package/framework7.min.css +3 -3
- package/framework7.min.js +3 -3
- package/framework7.min.js.map +1 -1
- package/less/mixins.less +7 -88
- package/less/plugin.js +15 -0
- package/modules/clicks/clicks.js +10 -22
- package/modules/component/$h.js +0 -3
- package/modules/component/$jsx.js +0 -5
- package/modules/component/component-class.js +13 -66
- package/modules/component/component.d.ts +1 -2
- package/modules/component/component.js +0 -8
- package/modules/component/eventslisteners.js +12 -20
- package/modules/component/parse-component.js +18 -20
- package/modules/component/snabbdom/h.js +3 -12
- package/modules/component/snabbdom/helpers/attachto.js +9 -14
- package/modules/component/snabbdom/htmldomapi.js +0 -16
- package/modules/component/snabbdom/modules/attributes.js +7 -11
- package/modules/component/snabbdom/modules/class.js +4 -8
- package/modules/component/snabbdom/modules/dataset.js +3 -7
- package/modules/component/snabbdom/modules/eventlisteners.js +16 -22
- package/modules/component/snabbdom/modules/hero.js +4 -44
- package/modules/component/snabbdom/modules/props.js +5 -9
- package/modules/component/snabbdom/modules/style.js +13 -30
- package/modules/component/snabbdom/snabbdom.bundle.js +0 -6
- package/modules/component/snabbdom/snabbdom.js +13 -72
- package/modules/component/snabbdom/thunk.js +3 -11
- package/modules/component/snabbdom/tovnode.js +1 -6
- package/modules/component/vdom.js +4 -62
- package/modules/demo-module.js +0 -8
- package/modules/device/device.js +6 -11
- package/modules/history/history.js +0 -1
- package/modules/resize/resize.js +8 -11
- package/modules/router/async-component.js +0 -3
- package/modules/router/back.js +86 -275
- package/modules/router/clear-previous-history.js +5 -18
- package/modules/router/component-loader.js +4 -25
- package/modules/router/modal.js +16 -43
- package/modules/router/navigate.js +80 -249
- package/modules/router/process-route-queue.js +0 -12
- package/modules/router/redirect.js +0 -8
- package/modules/router/router-class.js +92 -315
- package/modules/router/router.d.ts +3 -5
- package/modules/router/router.js +0 -3
- package/modules/router/swipe-back.js +35 -139
- package/modules/router/tab.js +14 -43
- package/modules/service-worker/service-worker.js +0 -11
- package/modules/store/create-store.js +10 -29
- package/modules/touch/touch.d.ts +2 -4
- package/modules/touch/touch.js +13 -108
- package/package.json +4 -18
- package/shared/$jsx.js +0 -6
- package/shared/class.js +18 -43
- package/shared/constructor-methods.js +0 -11
- package/shared/events-class.js +0 -17
- package/shared/get-device.js +18 -34
- package/shared/get-support.js +2 -8
- package/shared/history.js +2 -30
- package/shared/material-color-utils.js +728 -0
- package/shared/material-colors.js +75 -0
- package/shared/modal-methods.js +0 -18
- package/shared/utils.d.ts +0 -4
- package/shared/utils.js +191 -71
- package/components/accordion/accordion-aurora.less +0 -2
- package/components/actions/actions-aurora.less +0 -9
- package/components/app/app-aurora.less +0 -10
- package/components/appbar/appbar-aurora.less +0 -2
- package/components/appbar/appbar-ios.less +0 -2
- package/components/appbar/appbar-md.less +0 -2
- package/components/appbar/appbar-rtl.css +0 -1
- package/components/appbar/appbar-vars.less +0 -28
- package/components/appbar/appbar.css +0 -1
- package/components/appbar/appbar.d.ts +0 -14
- package/components/appbar/appbar.js +0 -3
- package/components/appbar/appbar.lazy.js +0 -1
- package/components/appbar/appbar.less +0 -106
- package/components/area-chart/area-chart-aurora.less +0 -2
- package/components/autocomplete/autocomplete-aurora.less +0 -17
- package/components/badge/badge-aurora.less +0 -2
- package/components/block/block-aurora.less +0 -2
- package/components/breadcrumbs/breadcrumbs-aurora.less +0 -2
- package/components/button/button-aurora.less +0 -25
- package/components/calendar/calendar-aurora.less +0 -2
- package/components/card/card-aurora.less +0 -2
- package/components/checkbox/checkbox-aurora.less +0 -39
- package/components/chip/chip-aurora.less +0 -14
- package/components/color-picker/color-picker-aurora.less +0 -2
- package/components/contacts-list/contacts-list-aurora.less +0 -2
- package/components/data-table/data-table-aurora.less +0 -64
- package/components/dialog/dialog-aurora.less +0 -112
- package/components/elevation/elevation-aurora.less +0 -2
- package/components/elevation/elevation-ios.less +0 -2
- package/components/elevation/elevation-md.less +0 -2
- package/components/elevation/elevation-rtl.css +0 -1
- package/components/elevation/elevation-vars.less +0 -51
- package/components/elevation/elevation.css +0 -1
- package/components/elevation/elevation.d.ts +0 -14
- package/components/elevation/elevation.js +0 -3
- package/components/elevation/elevation.lazy.js +0 -1
- package/components/elevation/elevation.less +0 -54
- package/components/fab/fab-aurora.less +0 -2
- package/components/form/form-aurora.less +0 -0
- package/components/gauge/gauge-aurora.less +0 -2
- package/components/grid/grid-aurora.less +0 -2
- package/components/icon/icon-aurora.less +0 -49
- package/components/infinite-scroll/infinite-scroll-aurora.less +0 -6
- package/components/input/input-aurora.less +0 -120
- package/components/lazy/lazy-aurora.less +0 -2
- package/components/lazy/lazy-ios.less +0 -2
- package/components/lazy/lazy-md.less +0 -2
- package/components/lazy/lazy-rtl.css +0 -1
- package/components/lazy/lazy.css +0 -1
- package/components/lazy/lazy.d.ts +0 -57
- package/components/lazy/lazy.js +0 -283
- package/components/lazy/lazy.lazy.js +0 -1
- package/components/lazy/lazy.less +0 -23
- package/components/link/link-aurora.less +0 -15
- package/components/list/list-aurora.less +0 -25
- package/components/list-index/list-index-aurora.less +0 -21
- package/components/login-screen/login-screen-aurora.less +0 -2
- package/components/menu/menu-aurora.less +0 -8
- package/components/menu/menu-ios.less +0 -2
- package/components/menu/menu-md.less +0 -2
- package/components/menu/menu-rtl.css +0 -1
- package/components/menu/menu-vars.less +0 -27
- package/components/menu/menu.css +0 -1
- package/components/menu/menu.d.ts +0 -32
- package/components/menu/menu.js +0 -87
- package/components/menu/menu.lazy.js +0 -1
- package/components/menu/menu.less +0 -232
- package/components/messagebar/messagebar-aurora.less +0 -53
- package/components/messages/messages-aurora.less +0 -137
- package/components/navbar/navbar-aurora.less +0 -70
- package/components/notification/notification-aurora.less +0 -59
- package/components/page/page-aurora.less +0 -49
- package/components/panel/panel-aurora.less +0 -2
- package/components/photo-browser/photo-browser-aurora.less +0 -2
- package/components/picker/picker-aurora.less +0 -2
- package/components/pie-chart/pie-chart-aurora.less +0 -2
- package/components/popover/popover-aurora.less +0 -56
- package/components/popup/popup-aurora.less +0 -2
- package/components/preloader/preloader-aurora.less +0 -53
- package/components/progressbar/progressbar-aurora.less +0 -72
- package/components/pull-to-refresh/pull-to-refresh-aurora.less +0 -122
- package/components/radio/radio-aurora.less +0 -86
- package/components/range/range-aurora.less +0 -9
- package/components/searchbar/searchbar-aurora.less +0 -86
- package/components/sheet/sheet-aurora.less +0 -2
- package/components/skeleton/skeleton-aurora.less +0 -2
- package/components/smart-select/smart-select-aurora.less +0 -2
- package/components/sortable/sortable-aurora.less +0 -7
- package/components/statusbar/statusbar-aurora.less +0 -2
- package/components/stepper/stepper-aurora.less +0 -32
- package/components/subnavbar/subnavbar-aurora.less +0 -51
- package/components/swipeout/swipeout-aurora.less +0 -2
- package/components/swiper/swiper-aurora.less +0 -2
- package/components/tabs/tabs-aurora.less +0 -2
- package/components/text-editor/text-editor-aurora.less +0 -9
- package/components/timeline/timeline-aurora.less +0 -7
- package/components/toast/toast-aurora.less +0 -64
- package/components/toggle/toggle-aurora.less +0 -26
- package/components/toolbar/toolbar-aurora.less +0 -43
- package/components/tooltip/tooltip-aurora.less +0 -2
- package/components/touch-ripple/touch-ripple-aurora.less +0 -2
- package/components/treeview/treeview-aurora.less +0 -31
- package/components/typography/typography-aurora.less +0 -2
- package/components/view/view-aurora.less +0 -2
- package/components/virtual-list/virtual-list-aurora.less +0 -2
- package/modules/request/request.d.ts +0 -15
- package/modules/request/request.js +0 -11
- package/postinstall.js +0 -3
- package/shared/request.d.ts +0 -115
- package/shared/request.js +0 -512
|
@@ -11,14 +11,13 @@ import { modalLoad, modalRemove } from './modal.js';
|
|
|
11
11
|
import { back } from './back.js';
|
|
12
12
|
import { clearPreviousHistory } from './clear-previous-history.js';
|
|
13
13
|
import appRouterCheck from './app-router-check.js';
|
|
14
|
-
|
|
15
14
|
class Router extends Framework7Class {
|
|
16
15
|
constructor(app, view) {
|
|
17
16
|
super({}, [typeof view === 'undefined' ? app : view]);
|
|
18
|
-
const router = this;
|
|
17
|
+
const router = this;
|
|
19
18
|
|
|
19
|
+
// Is App Router
|
|
20
20
|
router.isAppRouter = typeof view === 'undefined';
|
|
21
|
-
|
|
22
21
|
if (router.isAppRouter) {
|
|
23
22
|
// App Router
|
|
24
23
|
extend(false, router, {
|
|
@@ -43,52 +42,46 @@ class Router extends Framework7Class {
|
|
|
43
42
|
initialPages: [],
|
|
44
43
|
initialNavbars: []
|
|
45
44
|
});
|
|
46
|
-
}
|
|
47
|
-
|
|
45
|
+
}
|
|
48
46
|
|
|
49
|
-
|
|
47
|
+
// Install Modules
|
|
48
|
+
router.useModules();
|
|
50
49
|
|
|
51
|
-
|
|
50
|
+
// AllowPageChage
|
|
51
|
+
router.allowPageChange = true;
|
|
52
52
|
|
|
53
|
+
// Current Route
|
|
53
54
|
let currentRoute = {};
|
|
54
55
|
let previousRoute = {};
|
|
55
56
|
Object.defineProperty(router, 'currentRoute', {
|
|
56
57
|
enumerable: true,
|
|
57
58
|
configurable: true,
|
|
58
|
-
|
|
59
59
|
set(newRoute) {
|
|
60
60
|
if (newRoute === void 0) {
|
|
61
61
|
newRoute = {};
|
|
62
62
|
}
|
|
63
|
-
|
|
64
63
|
previousRoute = extend({}, currentRoute);
|
|
65
64
|
currentRoute = newRoute;
|
|
66
65
|
if (!currentRoute) return;
|
|
67
66
|
router.url = currentRoute.url;
|
|
68
67
|
router.emit('routeChange', newRoute, previousRoute, router);
|
|
69
68
|
},
|
|
70
|
-
|
|
71
69
|
get() {
|
|
72
70
|
return currentRoute;
|
|
73
71
|
}
|
|
74
|
-
|
|
75
72
|
});
|
|
76
73
|
Object.defineProperty(router, 'previousRoute', {
|
|
77
74
|
enumerable: true,
|
|
78
75
|
configurable: true,
|
|
79
|
-
|
|
80
76
|
get() {
|
|
81
77
|
return previousRoute;
|
|
82
78
|
},
|
|
83
|
-
|
|
84
79
|
set(newRoute) {
|
|
85
80
|
previousRoute = newRoute;
|
|
86
81
|
}
|
|
87
|
-
|
|
88
82
|
});
|
|
89
83
|
return router;
|
|
90
84
|
}
|
|
91
|
-
|
|
92
85
|
mount() {
|
|
93
86
|
const router = this;
|
|
94
87
|
const view = router.view;
|
|
@@ -102,27 +95,22 @@ class Router extends Framework7Class {
|
|
|
102
95
|
});
|
|
103
96
|
router.emit('local::mount routerMount', router);
|
|
104
97
|
}
|
|
105
|
-
|
|
106
98
|
animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) {
|
|
107
99
|
const router = this;
|
|
108
100
|
const dynamicNavbar = router.dynamicNavbar;
|
|
109
101
|
const animateIcon = router.params.iosAnimateNavbarBackIcon;
|
|
110
102
|
let newNavEls;
|
|
111
103
|
let oldNavEls;
|
|
112
|
-
|
|
113
104
|
function animatableNavEl($el, $navbarInner) {
|
|
114
105
|
const isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding');
|
|
115
106
|
const isSubnavbar = $el.hasClass('subnavbar');
|
|
116
107
|
const needsOpacityTransition = isSliding ? !isSubnavbar : true;
|
|
117
108
|
const $iconEl = $el.find('.back .icon');
|
|
118
109
|
let isIconLabel;
|
|
119
|
-
|
|
120
110
|
if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) {
|
|
121
111
|
$el = $iconEl.next('span'); // eslint-disable-line
|
|
122
|
-
|
|
123
112
|
isIconLabel = true;
|
|
124
113
|
}
|
|
125
|
-
|
|
126
114
|
return {
|
|
127
115
|
$el,
|
|
128
116
|
isIconLabel,
|
|
@@ -133,7 +121,6 @@ class Router extends Framework7Class {
|
|
|
133
121
|
needsOpacityTransition
|
|
134
122
|
};
|
|
135
123
|
}
|
|
136
|
-
|
|
137
124
|
if (dynamicNavbar) {
|
|
138
125
|
newNavEls = [];
|
|
139
126
|
oldNavEls = [];
|
|
@@ -143,21 +130,17 @@ class Router extends Framework7Class {
|
|
|
143
130
|
if ($navEl.hasClass('title') && toLarge) return;
|
|
144
131
|
newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner')));
|
|
145
132
|
});
|
|
146
|
-
|
|
147
133
|
if (!($oldNavbarEl.hasClass('navbar-master') && router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint)) {
|
|
148
134
|
$oldNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(navEl => {
|
|
149
135
|
const $navEl = $(navEl);
|
|
150
136
|
if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') return;
|
|
151
137
|
if ($navEl.hasClass('left') && toLarge && direction === 'backward') return;
|
|
152
|
-
|
|
153
138
|
if ($navEl.hasClass('title') && fromLarge) {
|
|
154
139
|
return;
|
|
155
140
|
}
|
|
156
|
-
|
|
157
141
|
oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner')));
|
|
158
142
|
});
|
|
159
143
|
}
|
|
160
|
-
|
|
161
144
|
[oldNavEls, newNavEls].forEach(navEls => {
|
|
162
145
|
navEls.forEach(navEl => {
|
|
163
146
|
const n = navEl;
|
|
@@ -176,64 +159,52 @@ class Router extends Framework7Class {
|
|
|
176
159
|
});
|
|
177
160
|
});
|
|
178
161
|
}
|
|
179
|
-
|
|
180
162
|
return {
|
|
181
163
|
newNavEls,
|
|
182
164
|
oldNavEls
|
|
183
165
|
};
|
|
184
166
|
}
|
|
185
|
-
|
|
186
167
|
animate($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) {
|
|
187
168
|
const router = this;
|
|
188
|
-
|
|
189
169
|
if (router.params.animateCustom) {
|
|
190
170
|
router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]);
|
|
191
171
|
return;
|
|
192
172
|
}
|
|
193
|
-
|
|
194
173
|
const dynamicNavbar = router.dynamicNavbar;
|
|
195
174
|
const ios = router.app.theme === 'ios';
|
|
196
|
-
|
|
197
175
|
if (transition) {
|
|
198
|
-
const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;
|
|
199
|
-
|
|
176
|
+
const routerCustomTransitionClass = `router-transition-custom router-transition-${transition}-${direction}`;
|
|
177
|
+
// Animate
|
|
200
178
|
const onCustomTransitionDone = () => {
|
|
201
179
|
router.$el.removeClass(routerCustomTransitionClass);
|
|
202
|
-
|
|
203
180
|
if (dynamicNavbar && router.$navbarsEl.length) {
|
|
204
181
|
if ($newNavbarEl) {
|
|
205
182
|
router.$navbarsEl.prepend($newNavbarEl);
|
|
206
183
|
}
|
|
207
|
-
|
|
208
184
|
if ($oldNavbarEl) {
|
|
209
185
|
router.$navbarsEl.prepend($oldNavbarEl);
|
|
210
186
|
}
|
|
211
187
|
}
|
|
212
|
-
|
|
213
188
|
if (callback) callback();
|
|
214
189
|
};
|
|
215
|
-
|
|
216
190
|
(direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone);
|
|
217
|
-
|
|
218
191
|
if (dynamicNavbar) {
|
|
219
192
|
if ($newNavbarEl && $newPageEl) {
|
|
220
193
|
router.setNavbarPosition($newNavbarEl, '');
|
|
221
194
|
$newNavbarEl.removeClass('navbar-next navbar-previous navbar-current');
|
|
222
195
|
$newPageEl.prepend($newNavbarEl);
|
|
223
196
|
}
|
|
224
|
-
|
|
225
197
|
if ($oldNavbarEl && $oldPageEl) {
|
|
226
198
|
router.setNavbarPosition($oldNavbarEl, '');
|
|
227
199
|
$oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current');
|
|
228
200
|
$oldPageEl.prepend($oldNavbarEl);
|
|
229
201
|
}
|
|
230
202
|
}
|
|
231
|
-
|
|
232
203
|
router.$el.addClass(routerCustomTransitionClass);
|
|
233
204
|
return;
|
|
234
|
-
}
|
|
235
|
-
|
|
205
|
+
}
|
|
236
206
|
|
|
207
|
+
// Router Animation class
|
|
237
208
|
const routerTransitionClass = `router-transition-${direction} router-transition`;
|
|
238
209
|
let newNavEls;
|
|
239
210
|
let oldNavEls;
|
|
@@ -242,10 +213,8 @@ class Router extends Framework7Class {
|
|
|
242
213
|
let toDifferent;
|
|
243
214
|
let oldIsLarge;
|
|
244
215
|
let newIsLarge;
|
|
245
|
-
|
|
246
216
|
if (ios && dynamicNavbar) {
|
|
247
217
|
const betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint && ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail') || $oldNavbarEl.hasClass('navbar-master-detail') && $newNavbarEl.hasClass('navbar-master'));
|
|
248
|
-
|
|
249
218
|
if (!betweenMasterAndDetail) {
|
|
250
219
|
oldIsLarge = $oldNavbarEl && $oldNavbarEl.hasClass('navbar-large');
|
|
251
220
|
newIsLarge = $newNavbarEl && $newNavbarEl.hasClass('navbar-large');
|
|
@@ -253,31 +222,25 @@ class Router extends Framework7Class {
|
|
|
253
222
|
toLarge = newIsLarge && !$newNavbarEl.hasClass('navbar-large-collapsed');
|
|
254
223
|
toDifferent = fromLarge && !toLarge || toLarge && !fromLarge;
|
|
255
224
|
}
|
|
256
|
-
|
|
257
225
|
const navEls = router.animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction);
|
|
258
226
|
newNavEls = navEls.newNavEls;
|
|
259
227
|
oldNavEls = navEls.oldNavEls;
|
|
260
228
|
}
|
|
261
|
-
|
|
262
229
|
function animateNavbars(progress) {
|
|
263
230
|
if (!(ios && dynamicNavbar)) return;
|
|
264
|
-
|
|
265
231
|
if (progress === 1) {
|
|
266
232
|
if (toLarge) {
|
|
267
233
|
$newNavbarEl.addClass('router-navbar-transition-to-large');
|
|
268
234
|
$oldNavbarEl.addClass('router-navbar-transition-to-large');
|
|
269
235
|
}
|
|
270
|
-
|
|
271
236
|
if (fromLarge) {
|
|
272
237
|
$newNavbarEl.addClass('router-navbar-transition-from-large');
|
|
273
238
|
$oldNavbarEl.addClass('router-navbar-transition-from-large');
|
|
274
239
|
}
|
|
275
240
|
}
|
|
276
|
-
|
|
277
241
|
newNavEls.forEach(navEl => {
|
|
278
242
|
const $el = navEl.$el;
|
|
279
243
|
const offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset;
|
|
280
|
-
|
|
281
244
|
if (navEl.isSliding) {
|
|
282
245
|
if (navEl.isSubnavbar && newIsLarge) {
|
|
283
246
|
// prettier-ignore
|
|
@@ -290,7 +253,6 @@ class Router extends Framework7Class {
|
|
|
290
253
|
oldNavEls.forEach(navEl => {
|
|
291
254
|
const $el = navEl.$el;
|
|
292
255
|
const offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset;
|
|
293
|
-
|
|
294
256
|
if (navEl.isSliding) {
|
|
295
257
|
if (navEl.isSubnavbar && oldIsLarge) {
|
|
296
258
|
$el.transform(`translate3d(${offset * progress}px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)`);
|
|
@@ -299,9 +261,9 @@ class Router extends Framework7Class {
|
|
|
299
261
|
}
|
|
300
262
|
}
|
|
301
263
|
});
|
|
302
|
-
}
|
|
303
|
-
|
|
264
|
+
}
|
|
304
265
|
|
|
266
|
+
// AnimationEnd Callback
|
|
305
267
|
function onDone() {
|
|
306
268
|
if (router.dynamicNavbar) {
|
|
307
269
|
if ($newNavbarEl) {
|
|
@@ -311,44 +273,40 @@ class Router extends Framework7Class {
|
|
|
311
273
|
$newNavbarEl.removeClass('navbar-no-title-large-transition');
|
|
312
274
|
});
|
|
313
275
|
}
|
|
314
|
-
|
|
315
276
|
if ($oldNavbarEl) {
|
|
316
277
|
$oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large');
|
|
317
278
|
}
|
|
318
|
-
|
|
319
279
|
if ($newNavbarEl.hasClass('sliding') || $newNavbarEl.children('.navbar-inner.sliding').length) {
|
|
320
280
|
$newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');
|
|
321
281
|
} else {
|
|
322
282
|
$newNavbarEl.find('.sliding').transform('');
|
|
323
283
|
}
|
|
324
|
-
|
|
325
284
|
if ($oldNavbarEl.hasClass('sliding') || $oldNavbarEl.children('.navbar-inner.sliding').length) {
|
|
326
285
|
$oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform('');
|
|
327
286
|
} else {
|
|
328
287
|
$oldNavbarEl.find('.sliding').transform('');
|
|
329
288
|
}
|
|
330
289
|
}
|
|
331
|
-
|
|
332
290
|
router.$el.removeClass(routerTransitionClass);
|
|
333
291
|
if (callback) callback();
|
|
334
292
|
}
|
|
335
293
|
|
|
336
|
-
|
|
294
|
+
// eslint-disable-next-line
|
|
295
|
+
(direction === 'forward' ? $newPageEl : ios ? $oldPageEl : $newPageEl).animationEnd(() => {
|
|
337
296
|
onDone();
|
|
338
|
-
});
|
|
297
|
+
});
|
|
339
298
|
|
|
299
|
+
// Animate
|
|
340
300
|
if (dynamicNavbar) {
|
|
341
301
|
// Prepare Navbars
|
|
342
302
|
animateNavbars(0);
|
|
343
303
|
nextFrame(() => {
|
|
344
304
|
// Add class, start animation
|
|
345
305
|
router.$el.addClass(routerTransitionClass);
|
|
346
|
-
|
|
347
306
|
if (toDifferent) {
|
|
348
307
|
// eslint-disable-next-line
|
|
349
308
|
router.el._clientLeft = router.el.clientLeft;
|
|
350
309
|
}
|
|
351
|
-
|
|
352
310
|
animateNavbars(1);
|
|
353
311
|
});
|
|
354
312
|
} else {
|
|
@@ -356,36 +314,29 @@ class Router extends Framework7Class {
|
|
|
356
314
|
router.$el.addClass(routerTransitionClass);
|
|
357
315
|
}
|
|
358
316
|
}
|
|
359
|
-
|
|
360
317
|
removeModal(modalEl) {
|
|
361
318
|
const router = this;
|
|
362
319
|
router.removeEl(modalEl);
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
|
|
320
|
+
}
|
|
321
|
+
// eslint-disable-next-line
|
|
366
322
|
removeTabContent(tabEl) {
|
|
367
323
|
const $tabEl = $(tabEl);
|
|
368
324
|
$tabEl.html('');
|
|
369
325
|
}
|
|
370
|
-
|
|
371
326
|
removeNavbar(el) {
|
|
372
327
|
const router = this;
|
|
373
328
|
router.removeEl(el);
|
|
374
329
|
}
|
|
375
|
-
|
|
376
330
|
removePage(el) {
|
|
377
331
|
const $el = $(el);
|
|
378
332
|
const f7Page = $el && $el[0] && $el[0].f7Page;
|
|
379
333
|
const router = this;
|
|
380
|
-
|
|
381
334
|
if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) {
|
|
382
335
|
$el.remove();
|
|
383
336
|
return;
|
|
384
337
|
}
|
|
385
|
-
|
|
386
338
|
router.removeEl(el);
|
|
387
339
|
}
|
|
388
|
-
|
|
389
340
|
removeEl(el) {
|
|
390
341
|
if (!el) return;
|
|
391
342
|
const router = this;
|
|
@@ -399,15 +350,12 @@ class Router extends Framework7Class {
|
|
|
399
350
|
}
|
|
400
351
|
});
|
|
401
352
|
});
|
|
402
|
-
|
|
403
353
|
if ($el[0].f7Component && $el[0].f7Component.destroy) {
|
|
404
354
|
$el[0].f7Component.destroy();
|
|
405
355
|
}
|
|
406
|
-
|
|
407
356
|
if (!router.params.removeElements) {
|
|
408
357
|
return;
|
|
409
358
|
}
|
|
410
|
-
|
|
411
359
|
if (router.params.removeElementsWithTimeout) {
|
|
412
360
|
setTimeout(() => {
|
|
413
361
|
$el.remove();
|
|
@@ -416,65 +364,53 @@ class Router extends Framework7Class {
|
|
|
416
364
|
$el.remove();
|
|
417
365
|
}
|
|
418
366
|
}
|
|
419
|
-
|
|
420
367
|
getPageEl(content) {
|
|
421
368
|
const router = this;
|
|
422
|
-
|
|
423
369
|
if (typeof content === 'string') {
|
|
424
370
|
router.tempDom.innerHTML = content;
|
|
425
371
|
} else {
|
|
426
372
|
if ($(content).hasClass('page')) {
|
|
427
373
|
return content;
|
|
428
374
|
}
|
|
429
|
-
|
|
430
375
|
router.tempDom.innerHTML = '';
|
|
431
376
|
$(router.tempDom).append(content);
|
|
432
377
|
}
|
|
433
|
-
|
|
434
378
|
return router.findElement('.page', router.tempDom);
|
|
435
379
|
}
|
|
436
|
-
|
|
437
|
-
findElement(stringSelector, container, notStacked) {
|
|
380
|
+
findElement(stringSelector, container) {
|
|
438
381
|
const router = this;
|
|
439
382
|
const view = router.view;
|
|
440
|
-
const app = router.app;
|
|
383
|
+
const app = router.app;
|
|
441
384
|
|
|
385
|
+
// Modals Selector
|
|
442
386
|
const modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page';
|
|
443
387
|
const $container = $(container);
|
|
444
|
-
|
|
445
|
-
if (notStacked) selector += ':not(.stacked)';
|
|
388
|
+
const selector = stringSelector;
|
|
446
389
|
let found = $container.find(selector).filter(el => $(el).parents(modalsSelector).length === 0);
|
|
447
|
-
|
|
448
390
|
if (found.length > 1) {
|
|
449
391
|
if (typeof view.selector === 'string') {
|
|
450
392
|
// Search in related view
|
|
451
393
|
found = $container.find(`${view.selector} ${selector}`);
|
|
452
394
|
}
|
|
453
|
-
|
|
454
395
|
if (found.length > 1) {
|
|
455
396
|
// Search in main view
|
|
456
397
|
found = $container.find(`.${app.params.viewMainClass} ${selector}`);
|
|
457
398
|
}
|
|
458
399
|
}
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
if (!notStacked) found = router.findElement(selector, $container, true);
|
|
400
|
+
if (found.length === 1) return found;
|
|
401
|
+
found = router.findElement(selector, $container);
|
|
463
402
|
if (found && found.length === 1) return found;
|
|
464
403
|
if (found && found.length > 1) return $(found[0]);
|
|
465
404
|
return undefined;
|
|
466
405
|
}
|
|
467
|
-
|
|
468
406
|
flattenRoutes(routes) {
|
|
469
407
|
if (routes === void 0) {
|
|
470
408
|
routes = this.routes;
|
|
471
409
|
}
|
|
472
|
-
|
|
473
410
|
const router = this;
|
|
474
411
|
let flattenedRoutes = [];
|
|
475
412
|
routes.forEach(route => {
|
|
476
413
|
let hasTabRoutes = false;
|
|
477
|
-
|
|
478
414
|
if ('tabs' in route && route.tabs) {
|
|
479
415
|
const mergedPathsRoutes = route.tabs.map(tabRoute => {
|
|
480
416
|
const tRoute = extend({}, route, {
|
|
@@ -489,7 +425,6 @@ class Router extends Framework7Class {
|
|
|
489
425
|
hasTabRoutes = true;
|
|
490
426
|
flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));
|
|
491
427
|
}
|
|
492
|
-
|
|
493
428
|
if ('detailRoutes' in route) {
|
|
494
429
|
const mergedPathsRoutes = route.detailRoutes.map(detailRoute => {
|
|
495
430
|
const dRoute = extend({}, detailRoute);
|
|
@@ -499,29 +434,26 @@ class Router extends Framework7Class {
|
|
|
499
434
|
});
|
|
500
435
|
flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));
|
|
501
436
|
}
|
|
502
|
-
|
|
503
437
|
if ('routes' in route) {
|
|
504
438
|
const mergedPathsRoutes = route.routes.map(childRoute => {
|
|
505
439
|
const cRoute = extend({}, childRoute);
|
|
506
440
|
cRoute.path = `${route.path}/${cRoute.path}`.replace('///', '/').replace('//', '/');
|
|
507
441
|
return cRoute;
|
|
508
442
|
});
|
|
509
|
-
|
|
510
443
|
if (hasTabRoutes) {
|
|
511
444
|
flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes));
|
|
512
445
|
} else {
|
|
513
446
|
flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes));
|
|
514
447
|
}
|
|
515
448
|
}
|
|
516
|
-
|
|
517
449
|
if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) {
|
|
518
450
|
flattenedRoutes.push(route);
|
|
519
451
|
}
|
|
520
452
|
});
|
|
521
453
|
return flattenedRoutes;
|
|
522
|
-
}
|
|
523
|
-
|
|
454
|
+
}
|
|
524
455
|
|
|
456
|
+
// eslint-disable-next-line
|
|
525
457
|
parseRouteUrl(url) {
|
|
526
458
|
if (!url) return {};
|
|
527
459
|
const query = parseUrlQuery(url);
|
|
@@ -536,30 +468,24 @@ class Router extends Framework7Class {
|
|
|
536
468
|
path
|
|
537
469
|
};
|
|
538
470
|
}
|
|
539
|
-
|
|
540
471
|
generateUrl(parameters) {
|
|
541
472
|
if (parameters === void 0) {
|
|
542
473
|
parameters = {};
|
|
543
474
|
}
|
|
544
|
-
|
|
545
475
|
if (typeof parameters === 'string') {
|
|
546
476
|
return parameters;
|
|
547
477
|
}
|
|
548
|
-
|
|
549
478
|
const {
|
|
550
479
|
name,
|
|
551
480
|
path,
|
|
552
481
|
params,
|
|
553
482
|
query
|
|
554
483
|
} = parameters;
|
|
555
|
-
|
|
556
484
|
if (!name && !path) {
|
|
557
485
|
throw new Error('Framework7: "name" or "path" parameter is required');
|
|
558
486
|
}
|
|
559
|
-
|
|
560
487
|
const router = this;
|
|
561
488
|
const route = name ? router.findRouteByKey('name', name) : router.findRouteByKey('path', path);
|
|
562
|
-
|
|
563
489
|
if (!route) {
|
|
564
490
|
if (name) {
|
|
565
491
|
throw new Error(`Framework7: route with name "${name}" not found`);
|
|
@@ -567,20 +493,17 @@ class Router extends Framework7Class {
|
|
|
567
493
|
throw new Error(`Framework7: route with path "${path}" not found`);
|
|
568
494
|
}
|
|
569
495
|
}
|
|
570
|
-
|
|
571
496
|
const url = router.constructRouteUrl(route, {
|
|
572
497
|
params,
|
|
573
498
|
query
|
|
574
499
|
});
|
|
575
|
-
|
|
576
500
|
if (!url) {
|
|
577
501
|
throw new Error(`Framework7: can't construct URL for route with name "${name}"`);
|
|
578
502
|
}
|
|
579
|
-
|
|
580
503
|
return url;
|
|
581
|
-
}
|
|
582
|
-
|
|
504
|
+
}
|
|
583
505
|
|
|
506
|
+
// eslint-disable-next-line
|
|
584
507
|
constructRouteUrl(route, _temp) {
|
|
585
508
|
let {
|
|
586
509
|
params,
|
|
@@ -591,20 +514,16 @@ class Router extends Framework7Class {
|
|
|
591
514
|
} = route;
|
|
592
515
|
const toUrl = compile(path);
|
|
593
516
|
let url;
|
|
594
|
-
|
|
595
517
|
try {
|
|
596
518
|
url = toUrl(params || {});
|
|
597
519
|
} catch (error) {
|
|
598
520
|
throw new Error(`Framework7: error constructing route URL from passed params:\nRoute: ${path}\n${error.toString()}`);
|
|
599
521
|
}
|
|
600
|
-
|
|
601
522
|
if (query) {
|
|
602
523
|
if (typeof query === 'string') url += `?${query}`;else if (Object.keys(query).length) url += `?${serializeObject(query)}`;
|
|
603
524
|
}
|
|
604
|
-
|
|
605
525
|
return url;
|
|
606
526
|
}
|
|
607
|
-
|
|
608
527
|
findTabRouteUrl(tabEl) {
|
|
609
528
|
const router = this;
|
|
610
529
|
const $tabEl = $(tabEl);
|
|
@@ -626,7 +545,6 @@ class Router extends Framework7Class {
|
|
|
626
545
|
});
|
|
627
546
|
return foundTabRouteUrl;
|
|
628
547
|
}
|
|
629
|
-
|
|
630
548
|
findRouteByKey(key, value) {
|
|
631
549
|
const router = this;
|
|
632
550
|
const routes = router.routes;
|
|
@@ -634,14 +552,12 @@ class Router extends Framework7Class {
|
|
|
634
552
|
let matchingRoute;
|
|
635
553
|
flattenedRoutes.forEach(route => {
|
|
636
554
|
if (matchingRoute) return;
|
|
637
|
-
|
|
638
555
|
if (route[key] === value) {
|
|
639
556
|
matchingRoute = route;
|
|
640
557
|
}
|
|
641
558
|
});
|
|
642
559
|
return matchingRoute;
|
|
643
560
|
}
|
|
644
|
-
|
|
645
561
|
findMatchingRoute(url) {
|
|
646
562
|
if (!url) return undefined;
|
|
647
563
|
const router = this;
|
|
@@ -658,7 +574,6 @@ class Router extends Framework7Class {
|
|
|
658
574
|
if (matchingRoute) return;
|
|
659
575
|
const keys = [];
|
|
660
576
|
const pathsToMatch = [route.path];
|
|
661
|
-
|
|
662
577
|
if (route.alias) {
|
|
663
578
|
if (typeof route.alias === 'string') pathsToMatch.push(route.alias);else if (Array.isArray(route.alias)) {
|
|
664
579
|
route.alias.forEach(aliasPath => {
|
|
@@ -666,18 +581,15 @@ class Router extends Framework7Class {
|
|
|
666
581
|
});
|
|
667
582
|
}
|
|
668
583
|
}
|
|
669
|
-
|
|
670
584
|
let matched;
|
|
671
585
|
pathsToMatch.forEach(pathToMatch => {
|
|
672
586
|
if (matched) return;
|
|
673
587
|
matched = pathToRegexp(pathToMatch, keys).exec(path);
|
|
674
588
|
});
|
|
675
|
-
|
|
676
589
|
if (matched) {
|
|
677
590
|
keys.forEach((keyObj, index) => {
|
|
678
591
|
if (typeof keyObj.name === 'number') return;
|
|
679
592
|
const paramValue = matched[index + 1];
|
|
680
|
-
|
|
681
593
|
if (typeof paramValue === 'undefined' || paramValue === null) {
|
|
682
594
|
params[keyObj.name] = paramValue;
|
|
683
595
|
} else {
|
|
@@ -685,11 +597,9 @@ class Router extends Framework7Class {
|
|
|
685
597
|
}
|
|
686
598
|
});
|
|
687
599
|
let parentPath;
|
|
688
|
-
|
|
689
600
|
if (route.parentPath) {
|
|
690
601
|
parentPath = path.split('/').slice(0, route.parentPath.split('/').length - 1).join('/');
|
|
691
602
|
}
|
|
692
|
-
|
|
693
603
|
matchingRoute = {
|
|
694
604
|
query,
|
|
695
605
|
hash,
|
|
@@ -703,42 +613,34 @@ class Router extends Framework7Class {
|
|
|
703
613
|
}
|
|
704
614
|
});
|
|
705
615
|
return matchingRoute;
|
|
706
|
-
}
|
|
707
|
-
|
|
616
|
+
}
|
|
708
617
|
|
|
618
|
+
// eslint-disable-next-line
|
|
709
619
|
replaceRequestUrlParams(url, options) {
|
|
710
620
|
if (url === void 0) {
|
|
711
621
|
url = '';
|
|
712
622
|
}
|
|
713
|
-
|
|
714
623
|
if (options === void 0) {
|
|
715
624
|
options = {};
|
|
716
625
|
}
|
|
717
|
-
|
|
718
626
|
let compiledUrl = url;
|
|
719
|
-
|
|
720
627
|
if (typeof compiledUrl === 'string' && compiledUrl.indexOf('{{') >= 0 && options && options.route && options.route.params && Object.keys(options.route.params).length) {
|
|
721
628
|
Object.keys(options.route.params).forEach(paramName => {
|
|
722
629
|
const regExp = new RegExp(`{{${paramName}}}`, 'g');
|
|
723
630
|
compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || '');
|
|
724
631
|
});
|
|
725
632
|
}
|
|
726
|
-
|
|
727
633
|
return compiledUrl;
|
|
728
634
|
}
|
|
729
|
-
|
|
730
635
|
removeFromXhrCache(url) {
|
|
731
636
|
const router = this;
|
|
732
637
|
const xhrCache = router.cache.xhr;
|
|
733
638
|
let index = false;
|
|
734
|
-
|
|
735
639
|
for (let i = 0; i < xhrCache.length; i += 1) {
|
|
736
640
|
if (xhrCache[i].url === url) index = i;
|
|
737
641
|
}
|
|
738
|
-
|
|
739
642
|
if (index !== false) xhrCache.splice(index, 1);
|
|
740
643
|
}
|
|
741
|
-
|
|
742
644
|
xhrRequest(requestUrl, options) {
|
|
743
645
|
const router = this;
|
|
744
646
|
const params = router.params;
|
|
@@ -747,31 +649,25 @@ class Router extends Framework7Class {
|
|
|
747
649
|
} = options;
|
|
748
650
|
let url = requestUrl;
|
|
749
651
|
let hasQuery = url.indexOf('?') >= 0;
|
|
750
|
-
|
|
751
652
|
if (params.passRouteQueryToRequest && options && options.route && options.route.query && Object.keys(options.route.query).length) {
|
|
752
653
|
url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.query)}`;
|
|
753
654
|
hasQuery = true;
|
|
754
655
|
}
|
|
755
|
-
|
|
756
656
|
if (params.passRouteParamsToRequest && options && options.route && options.route.params && Object.keys(options.route.params).length) {
|
|
757
657
|
url += `${hasQuery ? '&' : '?'}${serializeObject(options.route.params)}`;
|
|
758
658
|
hasQuery = true;
|
|
759
659
|
}
|
|
760
|
-
|
|
761
660
|
if (url.indexOf('{{') >= 0) {
|
|
762
661
|
url = router.replaceRequestUrlParams(url, options);
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
|
|
662
|
+
}
|
|
663
|
+
// should we ignore get params or not
|
|
766
664
|
if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) {
|
|
767
665
|
url = url.split('?')[0];
|
|
768
666
|
}
|
|
769
|
-
|
|
770
667
|
return new Promise((resolve, reject) => {
|
|
771
668
|
if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) {
|
|
772
669
|
for (let i = 0; i < router.cache.xhr.length; i += 1) {
|
|
773
670
|
const cachedUrl = router.cache.xhr[i];
|
|
774
|
-
|
|
775
671
|
if (cachedUrl.url === url) {
|
|
776
672
|
// Check expiration
|
|
777
673
|
if (now() - cachedUrl.time < params.xhrCacheDuration) {
|
|
@@ -782,106 +678,86 @@ class Router extends Framework7Class {
|
|
|
782
678
|
}
|
|
783
679
|
}
|
|
784
680
|
}
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
if (
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
});
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
router.emit('routerAjaxSuccess', xhr, options);
|
|
810
|
-
resolve(xhr.responseText);
|
|
811
|
-
} else {
|
|
812
|
-
router.emit('routerAjaxError', xhr, options);
|
|
813
|
-
reject(xhr);
|
|
681
|
+
router.xhrAbortController = new AbortController();
|
|
682
|
+
let fetchRes;
|
|
683
|
+
fetch(url, {
|
|
684
|
+
signal: router.xhrAbortController.signal,
|
|
685
|
+
method: 'GET'
|
|
686
|
+
}).then(res => {
|
|
687
|
+
fetchRes = res;
|
|
688
|
+
return res.text();
|
|
689
|
+
}).then(responseText => {
|
|
690
|
+
const {
|
|
691
|
+
status
|
|
692
|
+
} = fetchRes;
|
|
693
|
+
router.emit('routerAjaxComplete', fetchRes);
|
|
694
|
+
if (status !== 'error' && status !== 'timeout' && status >= 200 && status < 300 || status === 0) {
|
|
695
|
+
if (params.xhrCache && responseText !== '') {
|
|
696
|
+
router.removeFromXhrCache(url);
|
|
697
|
+
router.cache.xhr.push({
|
|
698
|
+
url,
|
|
699
|
+
time: now(),
|
|
700
|
+
content: responseText
|
|
701
|
+
});
|
|
814
702
|
}
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
router.emit('routerAjaxError',
|
|
819
|
-
reject(
|
|
703
|
+
router.emit('routerAjaxSuccess', fetchRes, options);
|
|
704
|
+
resolve(responseText);
|
|
705
|
+
} else {
|
|
706
|
+
router.emit('routerAjaxError', fetchRes, options);
|
|
707
|
+
reject(fetchRes);
|
|
820
708
|
}
|
|
821
|
-
|
|
709
|
+
}).catch(err => {
|
|
710
|
+
reject(err);
|
|
822
711
|
});
|
|
823
712
|
});
|
|
824
713
|
}
|
|
825
|
-
|
|
826
714
|
setNavbarPosition($el, position, ariaHidden) {
|
|
827
715
|
const router = this;
|
|
828
716
|
$el.removeClass('navbar-previous navbar-current navbar-next');
|
|
829
|
-
|
|
830
717
|
if (position) {
|
|
831
718
|
$el.addClass(`navbar-${position}`);
|
|
832
719
|
}
|
|
833
|
-
|
|
834
720
|
if (ariaHidden === false) {
|
|
835
721
|
$el.removeAttr('aria-hidden');
|
|
836
722
|
} else if (ariaHidden === true) {
|
|
837
723
|
$el.attr('aria-hidden', 'true');
|
|
838
724
|
}
|
|
839
|
-
|
|
840
725
|
$el.trigger('navbar:position', {
|
|
841
726
|
position
|
|
842
727
|
});
|
|
843
728
|
router.emit('navbarPosition', $el[0], position);
|
|
844
729
|
}
|
|
845
|
-
|
|
846
730
|
setPagePosition($el, position, ariaHidden) {
|
|
847
731
|
const router = this;
|
|
848
732
|
$el.removeClass('page-previous page-current page-next');
|
|
849
733
|
$el.addClass(`page-${position}`);
|
|
850
|
-
|
|
851
734
|
if (ariaHidden === false) {
|
|
852
735
|
$el.removeAttr('aria-hidden');
|
|
853
736
|
} else if (ariaHidden === true) {
|
|
854
737
|
$el.attr('aria-hidden', 'true');
|
|
855
738
|
}
|
|
856
|
-
|
|
857
739
|
$el.trigger('page:position', {
|
|
858
740
|
position
|
|
859
741
|
});
|
|
860
742
|
router.emit('pagePosition', $el[0], position);
|
|
861
|
-
}
|
|
862
|
-
|
|
743
|
+
}
|
|
863
744
|
|
|
745
|
+
// Remove theme elements
|
|
864
746
|
removeThemeElements(el) {
|
|
865
747
|
const router = this;
|
|
866
748
|
const theme = router.app.theme;
|
|
867
749
|
let toRemove;
|
|
868
|
-
|
|
869
750
|
if (theme === 'ios') {
|
|
870
|
-
toRemove = '.md-only, .
|
|
751
|
+
toRemove = '.md-only, .if-md, .if-not-ios, .not-ios';
|
|
871
752
|
} else if (theme === 'md') {
|
|
872
|
-
toRemove = '.ios-only, .
|
|
873
|
-
} else if (theme === 'aurora') {
|
|
874
|
-
toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora';
|
|
753
|
+
toRemove = '.ios-only, .if-ios, .if-not-md, .not-md';
|
|
875
754
|
}
|
|
876
|
-
|
|
877
755
|
$(el).find(toRemove).remove();
|
|
878
756
|
}
|
|
879
|
-
|
|
880
757
|
getPageData(pageEl, navbarEl, from, to, route, pageFromEl) {
|
|
881
758
|
if (route === void 0) {
|
|
882
759
|
route = {};
|
|
883
760
|
}
|
|
884
|
-
|
|
885
761
|
const router = this;
|
|
886
762
|
const $pageEl = $(pageEl).eq(0);
|
|
887
763
|
const $navbarEl = $(navbarEl).eq(0);
|
|
@@ -890,21 +766,16 @@ class Router extends Framework7Class {
|
|
|
890
766
|
let pageFrom;
|
|
891
767
|
if (from === 'next' && to === 'current' || from === 'current' && to === 'previous') direction = 'forward';
|
|
892
768
|
if (from === 'current' && to === 'next' || from === 'previous' && to === 'current') direction = 'backward';
|
|
893
|
-
|
|
894
769
|
if (currentPage && !currentPage.fromPage) {
|
|
895
770
|
const $pageFromEl = $(pageFromEl);
|
|
896
|
-
|
|
897
771
|
if ($pageFromEl.length) {
|
|
898
772
|
pageFrom = $pageFromEl[0].f7Page;
|
|
899
773
|
}
|
|
900
774
|
}
|
|
901
|
-
|
|
902
775
|
pageFrom = currentPage.pageFrom || pageFrom;
|
|
903
|
-
|
|
904
776
|
if (pageFrom && pageFrom.pageFrom) {
|
|
905
777
|
pageFrom.pageFrom = null;
|
|
906
778
|
}
|
|
907
|
-
|
|
908
779
|
const page = {
|
|
909
780
|
app: router.app,
|
|
910
781
|
view: router.view,
|
|
@@ -925,14 +796,13 @@ class Router extends Framework7Class {
|
|
|
925
796
|
};
|
|
926
797
|
$pageEl[0].f7Page = page;
|
|
927
798
|
return page;
|
|
928
|
-
}
|
|
929
|
-
|
|
799
|
+
}
|
|
930
800
|
|
|
801
|
+
// Callbacks
|
|
931
802
|
pageCallback(callback, pageEl, navbarEl, from, to, options, pageFromEl) {
|
|
932
803
|
if (options === void 0) {
|
|
933
804
|
options = {};
|
|
934
805
|
}
|
|
935
|
-
|
|
936
806
|
if (!pageEl) return;
|
|
937
807
|
const router = this;
|
|
938
808
|
const $pageEl = $(pageEl);
|
|
@@ -943,7 +813,6 @@ class Router extends Framework7Class {
|
|
|
943
813
|
} = options;
|
|
944
814
|
const restoreScrollTopOnBack = router.params.restoreScrollTopOnBack && !(router.params.masterDetailBreakpoint > 0 && $pageEl.hasClass('page-master') && router.app.width >= router.params.masterDetailBreakpoint);
|
|
945
815
|
const keepAlive = $pageEl[0].f7Page && $pageEl[0].f7Page.route && $pageEl[0].f7Page.route.route && $pageEl[0].f7Page.route.route.keepAlive;
|
|
946
|
-
|
|
947
816
|
if (callback === 'beforeRemove' && keepAlive) {
|
|
948
817
|
callback = 'beforeUnmount'; // eslint-disable-line
|
|
949
818
|
}
|
|
@@ -951,7 +820,6 @@ class Router extends Framework7Class {
|
|
|
951
820
|
const camelName = `page${callback[0].toUpperCase() + callback.slice(1, callback.length)}`;
|
|
952
821
|
const colonName = `page:${callback.toLowerCase()}`;
|
|
953
822
|
let page = {};
|
|
954
|
-
|
|
955
823
|
if (callback === 'beforeRemove' && $pageEl[0].f7Page) {
|
|
956
824
|
page = extend($pageEl[0].f7Page, {
|
|
957
825
|
from,
|
|
@@ -961,25 +829,20 @@ class Router extends Framework7Class {
|
|
|
961
829
|
} else {
|
|
962
830
|
page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl);
|
|
963
831
|
}
|
|
964
|
-
|
|
965
832
|
page.swipeBack = !!options.swipeBack;
|
|
966
833
|
const {
|
|
967
834
|
on = {},
|
|
968
835
|
once = {}
|
|
969
836
|
} = options.route ? options.route.route : {};
|
|
970
|
-
|
|
971
837
|
if (options.on) {
|
|
972
838
|
extend(on, options.on);
|
|
973
839
|
}
|
|
974
|
-
|
|
975
840
|
if (options.once) {
|
|
976
841
|
extend(once, options.once);
|
|
977
842
|
}
|
|
978
|
-
|
|
979
843
|
function attachEvents() {
|
|
980
844
|
if ($pageEl[0].f7RouteEventsAttached) return;
|
|
981
845
|
$pageEl[0].f7RouteEventsAttached = true;
|
|
982
|
-
|
|
983
846
|
if (on && Object.keys(on).length > 0) {
|
|
984
847
|
$pageEl[0].f7RouteEventsOn = on;
|
|
985
848
|
Object.keys(on).forEach(eventName => {
|
|
@@ -987,7 +850,6 @@ class Router extends Framework7Class {
|
|
|
987
850
|
$pageEl.on(eventNameToColonCase(eventName), on[eventName]);
|
|
988
851
|
});
|
|
989
852
|
}
|
|
990
|
-
|
|
991
853
|
if (once && Object.keys(once).length > 0) {
|
|
992
854
|
$pageEl[0].f7RouteEventsOnce = once;
|
|
993
855
|
Object.keys(once).forEach(eventName => {
|
|
@@ -996,22 +858,18 @@ class Router extends Framework7Class {
|
|
|
996
858
|
});
|
|
997
859
|
}
|
|
998
860
|
}
|
|
999
|
-
|
|
1000
861
|
function detachEvents() {
|
|
1001
862
|
if (!$pageEl[0].f7RouteEventsAttached) return;
|
|
1002
|
-
|
|
1003
863
|
if ($pageEl[0].f7RouteEventsOn) {
|
|
1004
864
|
Object.keys($pageEl[0].f7RouteEventsOn).forEach(eventName => {
|
|
1005
865
|
$pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]);
|
|
1006
866
|
});
|
|
1007
867
|
}
|
|
1008
|
-
|
|
1009
868
|
if ($pageEl[0].f7RouteEventsOnce) {
|
|
1010
869
|
Object.keys($pageEl[0].f7RouteEventsOnce).forEach(eventName => {
|
|
1011
870
|
$pageEl.off(eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]);
|
|
1012
871
|
});
|
|
1013
872
|
}
|
|
1014
|
-
|
|
1015
873
|
$pageEl[0].f7RouteEventsAttached = null;
|
|
1016
874
|
$pageEl[0].f7RouteEventsOn = null;
|
|
1017
875
|
$pageEl[0].f7RouteEventsOnce = null;
|
|
@@ -1019,109 +877,88 @@ class Router extends Framework7Class {
|
|
|
1019
877
|
delete $pageEl[0].f7RouteEventsOn;
|
|
1020
878
|
delete $pageEl[0].f7RouteEventsOnce;
|
|
1021
879
|
}
|
|
1022
|
-
|
|
1023
880
|
if (callback === 'mounted') {
|
|
1024
881
|
attachEvents();
|
|
1025
882
|
}
|
|
1026
|
-
|
|
1027
883
|
if (callback === 'init') {
|
|
1028
884
|
if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) {
|
|
1029
885
|
let $pageContent = $pageEl.find('.page-content');
|
|
1030
|
-
|
|
1031
886
|
if ($pageContent.length > 0) {
|
|
1032
887
|
// eslint-disable-next-line
|
|
1033
888
|
$pageContent = $pageContent.filter(pageContentEl => {
|
|
1034
889
|
return $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 && !$(pageContentEl).is('.tab:not(.tab-active)');
|
|
1035
890
|
});
|
|
1036
891
|
}
|
|
1037
|
-
|
|
1038
892
|
$pageContent.scrollTop(router.scrollHistory[page.route.url]);
|
|
1039
893
|
}
|
|
1040
|
-
|
|
1041
894
|
attachEvents();
|
|
1042
|
-
|
|
1043
895
|
if ($pageEl[0].f7PageInitialized) {
|
|
1044
896
|
$pageEl.trigger('page:reinit', page);
|
|
1045
897
|
router.emit('pageReinit', page);
|
|
1046
898
|
return;
|
|
1047
899
|
}
|
|
1048
|
-
|
|
1049
900
|
$pageEl[0].f7PageInitialized = true;
|
|
1050
901
|
}
|
|
1051
|
-
|
|
1052
902
|
if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') {
|
|
1053
903
|
// Save scroll position
|
|
1054
904
|
let $pageContent = $pageEl.find('.page-content');
|
|
1055
|
-
|
|
1056
905
|
if ($pageContent.length > 0) {
|
|
1057
906
|
// eslint-disable-next-line
|
|
1058
907
|
$pageContent = $pageContent.filter(pageContentEl => {
|
|
1059
908
|
return $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 && !$(pageContentEl).is('.tab:not(.tab-active)');
|
|
1060
909
|
});
|
|
1061
910
|
}
|
|
1062
|
-
|
|
1063
911
|
router.scrollHistory[page.route.url] = $pageContent.scrollTop();
|
|
1064
912
|
}
|
|
1065
|
-
|
|
1066
913
|
if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') {
|
|
1067
914
|
// Delete scroll position
|
|
1068
915
|
delete router.scrollHistory[page.route.url];
|
|
1069
916
|
}
|
|
1070
|
-
|
|
1071
917
|
$pageEl.trigger(colonName, page);
|
|
1072
918
|
router.emit(camelName, page);
|
|
1073
|
-
|
|
1074
919
|
if (callback === 'beforeRemove' || callback === 'beforeUnmount') {
|
|
1075
920
|
detachEvents();
|
|
1076
|
-
|
|
1077
921
|
if (!keepAlive) {
|
|
1078
922
|
if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) {
|
|
1079
923
|
delete $pageEl[0].f7Page.navbarEl.f7Page;
|
|
1080
924
|
}
|
|
1081
|
-
|
|
1082
925
|
$pageEl[0].f7Page = null;
|
|
1083
926
|
}
|
|
1084
927
|
}
|
|
1085
928
|
}
|
|
1086
|
-
|
|
1087
929
|
saveHistory() {
|
|
1088
930
|
const router = this;
|
|
1089
931
|
const window = getWindow();
|
|
1090
932
|
router.view.history = router.history;
|
|
1091
|
-
|
|
1092
933
|
if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage) {
|
|
1093
934
|
window.localStorage[`f7router-${router.view.id}-history`] = JSON.stringify(router.history);
|
|
1094
935
|
}
|
|
1095
936
|
}
|
|
1096
|
-
|
|
1097
937
|
restoreHistory() {
|
|
1098
938
|
const router = this;
|
|
1099
939
|
const window = getWindow();
|
|
1100
|
-
|
|
1101
940
|
if (router.params.browserHistory && router.params.browserHistoryStoreHistory && window.localStorage && window.localStorage[`f7router-${router.view.id}-history`]) {
|
|
1102
941
|
router.history = JSON.parse(window.localStorage[`f7router-${router.view.id}-history`]);
|
|
1103
942
|
router.view.history = router.history;
|
|
1104
943
|
}
|
|
1105
944
|
}
|
|
1106
|
-
|
|
1107
945
|
clearHistory() {
|
|
1108
946
|
const router = this;
|
|
1109
947
|
router.history = [];
|
|
1110
948
|
if (router.view) router.view.history = [];
|
|
1111
949
|
router.saveHistory();
|
|
1112
950
|
}
|
|
1113
|
-
|
|
1114
951
|
updateCurrentUrl(newUrl) {
|
|
1115
952
|
const router = this;
|
|
1116
|
-
appRouterCheck(router, 'updateCurrentUrl');
|
|
1117
|
-
|
|
953
|
+
appRouterCheck(router, 'updateCurrentUrl');
|
|
954
|
+
// Update history
|
|
1118
955
|
if (router.history.length) {
|
|
1119
956
|
router.history[router.history.length - 1] = newUrl;
|
|
1120
957
|
} else {
|
|
1121
958
|
router.history.push(newUrl);
|
|
1122
|
-
}
|
|
1123
|
-
|
|
959
|
+
}
|
|
1124
960
|
|
|
961
|
+
// Update current route params
|
|
1125
962
|
const {
|
|
1126
963
|
query,
|
|
1127
964
|
hash,
|
|
@@ -1129,7 +966,6 @@ class Router extends Framework7Class {
|
|
|
1129
966
|
url,
|
|
1130
967
|
path
|
|
1131
968
|
} = router.parseRouteUrl(newUrl);
|
|
1132
|
-
|
|
1133
969
|
if (router.currentRoute) {
|
|
1134
970
|
extend(router.currentRoute, {
|
|
1135
971
|
query,
|
|
@@ -1139,29 +975,25 @@ class Router extends Framework7Class {
|
|
|
1139
975
|
path
|
|
1140
976
|
});
|
|
1141
977
|
}
|
|
1142
|
-
|
|
1143
978
|
if (router.params.browserHistory) {
|
|
1144
979
|
const browserHistoryRoot = router.params.browserHistoryRoot || '';
|
|
1145
980
|
History.replace(router.view.id, {
|
|
1146
981
|
url: newUrl
|
|
1147
982
|
}, browserHistoryRoot + router.params.browserHistorySeparator + newUrl);
|
|
1148
|
-
}
|
|
1149
|
-
|
|
983
|
+
}
|
|
1150
984
|
|
|
985
|
+
// Save History
|
|
1151
986
|
router.saveHistory();
|
|
1152
987
|
router.emit('routeUrlUpdate', router.currentRoute, router);
|
|
1153
988
|
}
|
|
1154
|
-
|
|
1155
989
|
getInitialUrl() {
|
|
1156
990
|
const router = this;
|
|
1157
|
-
|
|
1158
991
|
if (router.initialUrl) {
|
|
1159
992
|
return {
|
|
1160
993
|
initialUrl: router.initialUrl,
|
|
1161
994
|
historyRestored: router.historyRestored
|
|
1162
995
|
};
|
|
1163
996
|
}
|
|
1164
|
-
|
|
1165
997
|
const {
|
|
1166
998
|
app,
|
|
1167
999
|
view
|
|
@@ -1180,22 +1012,18 @@ class Router extends Framework7Class {
|
|
|
1180
1012
|
let {
|
|
1181
1013
|
browserHistoryRoot
|
|
1182
1014
|
} = router.params;
|
|
1183
|
-
|
|
1184
1015
|
if ((window.cordova || window.Capacitor && window.Capacitor.isNative) && browserHistory && !browserHistorySeparator && !browserHistoryRoot && location.pathname.indexOf('index.html')) {
|
|
1185
1016
|
// eslint-disable-next-line
|
|
1186
1017
|
console.warn('Framework7: wrong or not complete browserHistory configuration, trying to guess browserHistoryRoot');
|
|
1187
1018
|
browserHistoryRoot = location.pathname.split('index.html')[0];
|
|
1188
1019
|
}
|
|
1189
|
-
|
|
1190
1020
|
if (!browserHistory || !browserHistoryOnLoad) {
|
|
1191
1021
|
if (!initialUrl) {
|
|
1192
1022
|
initialUrl = documentUrl;
|
|
1193
1023
|
}
|
|
1194
|
-
|
|
1195
1024
|
if (location.search && initialUrl.indexOf('?') < 0) {
|
|
1196
1025
|
initialUrl += location.search;
|
|
1197
1026
|
}
|
|
1198
|
-
|
|
1199
1027
|
if (location.hash && initialUrl.indexOf('#') < 0) {
|
|
1200
1028
|
initialUrl += location.hash;
|
|
1201
1029
|
}
|
|
@@ -1204,15 +1032,12 @@ class Router extends Framework7Class {
|
|
|
1204
1032
|
documentUrl = documentUrl.split(browserHistoryRoot)[1];
|
|
1205
1033
|
if (documentUrl === '') documentUrl = '/';
|
|
1206
1034
|
}
|
|
1207
|
-
|
|
1208
1035
|
if (browserHistorySeparator.length > 0 && documentUrl.indexOf(browserHistorySeparator) >= 0) {
|
|
1209
1036
|
initialUrl = documentUrl.split(browserHistorySeparator)[1];
|
|
1210
1037
|
} else {
|
|
1211
1038
|
initialUrl = documentUrl;
|
|
1212
1039
|
}
|
|
1213
|
-
|
|
1214
1040
|
router.restoreHistory();
|
|
1215
|
-
|
|
1216
1041
|
if (router.history.indexOf(initialUrl) >= 0) {
|
|
1217
1042
|
router.history = router.history.slice(0, router.history.indexOf(initialUrl) + 1);
|
|
1218
1043
|
} else if (router.params.url === initialUrl) {
|
|
@@ -1222,16 +1047,13 @@ class Router extends Framework7Class {
|
|
|
1222
1047
|
} else {
|
|
1223
1048
|
router.history = [documentUrl.split(browserHistorySeparator)[0] || '/', initialUrl];
|
|
1224
1049
|
}
|
|
1225
|
-
|
|
1226
1050
|
if (router.history.length > 1) {
|
|
1227
1051
|
historyRestored = true;
|
|
1228
1052
|
} else {
|
|
1229
1053
|
router.history = [];
|
|
1230
1054
|
}
|
|
1231
|
-
|
|
1232
1055
|
router.saveHistory();
|
|
1233
1056
|
}
|
|
1234
|
-
|
|
1235
1057
|
router.initialUrl = initialUrl;
|
|
1236
1058
|
router.historyRestored = historyRestored;
|
|
1237
1059
|
return {
|
|
@@ -1239,7 +1061,6 @@ class Router extends Framework7Class {
|
|
|
1239
1061
|
historyRestored
|
|
1240
1062
|
};
|
|
1241
1063
|
}
|
|
1242
|
-
|
|
1243
1064
|
init() {
|
|
1244
1065
|
const router = this;
|
|
1245
1066
|
const {
|
|
@@ -1251,12 +1072,12 @@ class Router extends Framework7Class {
|
|
|
1251
1072
|
const {
|
|
1252
1073
|
initialUrl,
|
|
1253
1074
|
historyRestored
|
|
1254
|
-
} = router.getInitialUrl();
|
|
1075
|
+
} = router.getInitialUrl();
|
|
1255
1076
|
|
|
1256
|
-
|
|
1077
|
+
// Init Swipeback
|
|
1078
|
+
if (view && router.params.iosSwipeBack && app.theme === 'ios' || view && router.params.mdSwipeBack && app.theme === 'md') {
|
|
1257
1079
|
SwipeBack(router);
|
|
1258
1080
|
}
|
|
1259
|
-
|
|
1260
1081
|
const {
|
|
1261
1082
|
browserHistory,
|
|
1262
1083
|
browserHistoryOnLoad,
|
|
@@ -1264,12 +1085,10 @@ class Router extends Framework7Class {
|
|
|
1264
1085
|
browserHistoryInitialMatch
|
|
1265
1086
|
} = router.params;
|
|
1266
1087
|
let currentRoute;
|
|
1267
|
-
|
|
1268
1088
|
if (router.history.length > 1) {
|
|
1269
1089
|
// Will load page
|
|
1270
1090
|
const initUrl = browserHistoryInitialMatch ? initialUrl : router.history[0];
|
|
1271
1091
|
currentRoute = router.findMatchingRoute(initUrl);
|
|
1272
|
-
|
|
1273
1092
|
if (!currentRoute) {
|
|
1274
1093
|
currentRoute = extend(router.parseRouteUrl(initUrl), {
|
|
1275
1094
|
route: {
|
|
@@ -1281,7 +1100,6 @@ class Router extends Framework7Class {
|
|
|
1281
1100
|
} else {
|
|
1282
1101
|
// Don't load page
|
|
1283
1102
|
currentRoute = router.findMatchingRoute(initialUrl);
|
|
1284
|
-
|
|
1285
1103
|
if (!currentRoute) {
|
|
1286
1104
|
currentRoute = extend(router.parseRouteUrl(initialUrl), {
|
|
1287
1105
|
route: {
|
|
@@ -1291,19 +1109,7 @@ class Router extends Framework7Class {
|
|
|
1291
1109
|
});
|
|
1292
1110
|
}
|
|
1293
1111
|
}
|
|
1294
|
-
|
|
1295
|
-
if (router.params.stackPages) {
|
|
1296
|
-
router.$el.children('.page').each(pageEl => {
|
|
1297
|
-
const $pageEl = $(pageEl);
|
|
1298
|
-
router.initialPages.push($pageEl[0]);
|
|
1299
|
-
|
|
1300
|
-
if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) {
|
|
1301
|
-
router.initialNavbars.push($pageEl.children('.navbar')[0]);
|
|
1302
|
-
}
|
|
1303
|
-
});
|
|
1304
|
-
}
|
|
1305
|
-
|
|
1306
|
-
if (router.$el.children('.page:not(.stacked)').length === 0 && initialUrl && router.params.loadInitialPage) {
|
|
1112
|
+
if (router.$el.children('.page').length === 0 && initialUrl && router.params.loadInitialPage) {
|
|
1307
1113
|
// No pages presented in DOM, reload new page
|
|
1308
1114
|
router.navigate(initialUrl, {
|
|
1309
1115
|
initial: true,
|
|
@@ -1314,108 +1120,85 @@ class Router extends Framework7Class {
|
|
|
1314
1120
|
modalOpen() {
|
|
1315
1121
|
if (!historyRestored) return;
|
|
1316
1122
|
const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];
|
|
1317
|
-
|
|
1318
1123
|
if (preloadPreviousPage && router.history.length > 1) {
|
|
1319
1124
|
router.back({
|
|
1320
1125
|
preload: true
|
|
1321
1126
|
});
|
|
1322
1127
|
}
|
|
1323
1128
|
},
|
|
1324
|
-
|
|
1325
1129
|
pageAfterIn() {
|
|
1326
1130
|
if (!historyRestored) return;
|
|
1327
1131
|
const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];
|
|
1328
|
-
|
|
1329
1132
|
if (preloadPreviousPage && router.history.length > 1) {
|
|
1330
1133
|
router.back({
|
|
1331
1134
|
preload: true
|
|
1332
1135
|
});
|
|
1333
1136
|
}
|
|
1334
1137
|
}
|
|
1335
|
-
|
|
1336
1138
|
}
|
|
1337
1139
|
});
|
|
1338
|
-
} else if (router.$el.children('.page
|
|
1140
|
+
} else if (router.$el.children('.page').length) {
|
|
1339
1141
|
// Init current DOM page
|
|
1340
1142
|
let hasTabRoute;
|
|
1341
1143
|
router.currentRoute = currentRoute;
|
|
1342
|
-
router.$el.children('.page
|
|
1144
|
+
router.$el.children('.page').each(pageEl => {
|
|
1343
1145
|
const $pageEl = $(pageEl);
|
|
1344
1146
|
let $navbarEl;
|
|
1345
1147
|
router.setPagePosition($pageEl, 'current');
|
|
1346
|
-
|
|
1347
1148
|
if (router.dynamicNavbar) {
|
|
1348
1149
|
$navbarEl = $pageEl.children('.navbar');
|
|
1349
|
-
|
|
1350
1150
|
if ($navbarEl.length > 0) {
|
|
1351
1151
|
if (!router.$navbarsEl.parents(document).length) {
|
|
1352
1152
|
router.$el.prepend(router.$navbarsEl);
|
|
1353
1153
|
}
|
|
1354
|
-
|
|
1355
1154
|
router.setNavbarPosition($navbarEl, 'current');
|
|
1356
1155
|
router.$navbarsEl.append($navbarEl);
|
|
1357
|
-
|
|
1358
1156
|
if ($navbarEl.children('.title-large').length) {
|
|
1359
1157
|
$navbarEl.addClass('navbar-large');
|
|
1360
1158
|
}
|
|
1361
|
-
|
|
1362
1159
|
$pageEl.children('.navbar').remove();
|
|
1363
1160
|
} else {
|
|
1364
1161
|
router.$navbarsEl.addClass('navbar-hidden');
|
|
1365
|
-
|
|
1366
1162
|
if ($navbarEl.children('.title-large').length) {
|
|
1367
1163
|
router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden');
|
|
1368
1164
|
}
|
|
1369
1165
|
}
|
|
1370
1166
|
}
|
|
1371
|
-
|
|
1372
1167
|
if (router.currentRoute && router.currentRoute.route && (router.currentRoute.route.master === true || typeof router.currentRoute.route.master === 'function' && router.currentRoute.route.master(app, router)) && router.params.masterDetailBreakpoint > 0) {
|
|
1373
1168
|
$pageEl.addClass('page-master');
|
|
1374
1169
|
$pageEl.trigger('page:role', {
|
|
1375
1170
|
role: 'master'
|
|
1376
1171
|
});
|
|
1377
|
-
|
|
1378
1172
|
if ($navbarEl && $navbarEl.length) {
|
|
1379
1173
|
$navbarEl.addClass('navbar-master');
|
|
1380
1174
|
}
|
|
1381
|
-
|
|
1382
1175
|
view.checkMasterDetailBreakpoint();
|
|
1383
1176
|
}
|
|
1384
|
-
|
|
1385
1177
|
const initOptions = {
|
|
1386
1178
|
route: router.currentRoute
|
|
1387
1179
|
};
|
|
1388
|
-
|
|
1389
1180
|
if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) {
|
|
1390
1181
|
extend(initOptions, router.currentRoute.route.options);
|
|
1391
1182
|
}
|
|
1392
|
-
|
|
1393
1183
|
router.currentPageEl = $pageEl[0];
|
|
1394
|
-
|
|
1395
1184
|
if (router.dynamicNavbar && $navbarEl.length) {
|
|
1396
1185
|
router.currentNavbarEl = $navbarEl[0];
|
|
1397
1186
|
}
|
|
1398
|
-
|
|
1399
1187
|
router.removeThemeElements($pageEl);
|
|
1400
|
-
|
|
1401
1188
|
if (router.dynamicNavbar && $navbarEl.length) {
|
|
1402
1189
|
router.removeThemeElements($navbarEl);
|
|
1403
1190
|
}
|
|
1404
|
-
|
|
1405
1191
|
if (initOptions.route.route.tab) {
|
|
1406
1192
|
hasTabRoute = true;
|
|
1407
1193
|
router.tabLoad(initOptions.route.route.tab, extend({}, initOptions));
|
|
1408
1194
|
}
|
|
1409
|
-
|
|
1410
1195
|
router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions);
|
|
1411
1196
|
router.pageCallback('beforeIn', $pageEl, $navbarEl, 'current', undefined, initOptions);
|
|
1412
1197
|
router.pageCallback('afterIn', $pageEl, $navbarEl, 'current', undefined, initOptions);
|
|
1413
1198
|
});
|
|
1414
|
-
|
|
1415
1199
|
if (historyRestored) {
|
|
1416
1200
|
if (browserHistoryInitialMatch) {
|
|
1417
1201
|
const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];
|
|
1418
|
-
|
|
1419
1202
|
if (preloadPreviousPage && router.history.length > 1) {
|
|
1420
1203
|
router.back({
|
|
1421
1204
|
preload: true
|
|
@@ -1430,58 +1213,52 @@ class Router extends Framework7Class {
|
|
|
1430
1213
|
once: {
|
|
1431
1214
|
pageAfterIn() {
|
|
1432
1215
|
const preloadPreviousPage = router.params.preloadPreviousPage || router.params[`${app.theme}SwipeBack`];
|
|
1433
|
-
|
|
1434
1216
|
if (preloadPreviousPage && router.history.length > 2) {
|
|
1435
1217
|
router.back({
|
|
1436
1218
|
preload: true
|
|
1437
1219
|
});
|
|
1438
1220
|
}
|
|
1439
1221
|
}
|
|
1440
|
-
|
|
1441
1222
|
}
|
|
1442
1223
|
});
|
|
1443
1224
|
}
|
|
1444
1225
|
}
|
|
1445
|
-
|
|
1446
1226
|
if (!historyRestored && !hasTabRoute) {
|
|
1447
1227
|
router.history.push(initialUrl);
|
|
1448
1228
|
router.saveHistory();
|
|
1449
1229
|
}
|
|
1450
1230
|
}
|
|
1451
|
-
|
|
1452
1231
|
if (initialUrl && browserHistory && browserHistoryOnLoad && (!History.state || !History.state[view.id])) {
|
|
1453
1232
|
History.initViewState(view.id, {
|
|
1454
1233
|
url: initialUrl
|
|
1455
1234
|
});
|
|
1456
1235
|
}
|
|
1457
|
-
|
|
1458
1236
|
router.emit('local::init routerInit', router);
|
|
1459
1237
|
}
|
|
1460
|
-
|
|
1461
1238
|
destroy() {
|
|
1462
1239
|
let router = this;
|
|
1463
|
-
router.emit('local::destroy routerDestroy', router);
|
|
1240
|
+
router.emit('local::destroy routerDestroy', router);
|
|
1464
1241
|
|
|
1242
|
+
// Delete props & methods
|
|
1465
1243
|
Object.keys(router).forEach(routerProp => {
|
|
1466
1244
|
router[routerProp] = null;
|
|
1467
1245
|
delete router[routerProp];
|
|
1468
1246
|
});
|
|
1469
1247
|
router = null;
|
|
1470
1248
|
}
|
|
1249
|
+
}
|
|
1471
1250
|
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1251
|
+
// Load
|
|
1475
1252
|
Router.prototype.navigate = navigate;
|
|
1476
|
-
Router.prototype.refreshPage = refreshPage;
|
|
1477
|
-
|
|
1253
|
+
Router.prototype.refreshPage = refreshPage;
|
|
1254
|
+
// Tab
|
|
1478
1255
|
Router.prototype.tabLoad = tabLoad;
|
|
1479
|
-
Router.prototype.tabRemove = tabRemove;
|
|
1480
|
-
|
|
1256
|
+
Router.prototype.tabRemove = tabRemove;
|
|
1257
|
+
// Modal
|
|
1481
1258
|
Router.prototype.modalLoad = modalLoad;
|
|
1482
|
-
Router.prototype.modalRemove = modalRemove;
|
|
1483
|
-
|
|
1484
|
-
Router.prototype.back = back;
|
|
1485
|
-
|
|
1259
|
+
Router.prototype.modalRemove = modalRemove;
|
|
1260
|
+
// Back
|
|
1261
|
+
Router.prototype.back = back;
|
|
1262
|
+
// Clear history
|
|
1486
1263
|
Router.prototype.clearPreviousHistory = clearPreviousHistory;
|
|
1487
1264
|
export default Router;
|