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
|
@@ -3,27 +3,21 @@ import $ from '../../shared/dom7.js';
|
|
|
3
3
|
import { extend, deleteProps } from '../../shared/utils.js';
|
|
4
4
|
import Framework7Class from '../../shared/class.js';
|
|
5
5
|
import { getDevice } from '../../shared/get-device.js';
|
|
6
|
-
|
|
7
6
|
class VirtualList extends Framework7Class {
|
|
8
7
|
constructor(app, params) {
|
|
9
8
|
if (params === void 0) {
|
|
10
9
|
params = {};
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
super(params, [app]);
|
|
14
12
|
const vl = this;
|
|
15
13
|
const device = getDevice();
|
|
16
14
|
const document = getDocument();
|
|
17
15
|
let defaultHeight;
|
|
18
|
-
|
|
19
16
|
if (app.theme === 'md') {
|
|
20
17
|
defaultHeight = 48;
|
|
21
18
|
} else if (app.theme === 'ios') {
|
|
22
19
|
defaultHeight = 44;
|
|
23
|
-
} else if (app.theme === 'aurora') {
|
|
24
|
-
defaultHeight = 38;
|
|
25
20
|
}
|
|
26
|
-
|
|
27
21
|
const defaults = {
|
|
28
22
|
cols: 1,
|
|
29
23
|
height: defaultHeight,
|
|
@@ -37,7 +31,6 @@ class VirtualList extends Framework7Class {
|
|
|
37
31
|
ul: null,
|
|
38
32
|
createUl: true,
|
|
39
33
|
scrollableParentEl: undefined,
|
|
40
|
-
|
|
41
34
|
renderItem(item) {
|
|
42
35
|
return `
|
|
43
36
|
<li>
|
|
@@ -49,60 +42,51 @@ class VirtualList extends Framework7Class {
|
|
|
49
42
|
</li>
|
|
50
43
|
`.trim();
|
|
51
44
|
},
|
|
52
|
-
|
|
53
45
|
on: {}
|
|
54
|
-
};
|
|
46
|
+
};
|
|
55
47
|
|
|
48
|
+
// Extend defaults with modules params
|
|
56
49
|
vl.useModulesParams(defaults);
|
|
57
50
|
vl.params = extend(defaults, params);
|
|
58
|
-
|
|
59
51
|
if (vl.params.height === undefined || !vl.params.height) {
|
|
60
52
|
vl.params.height = defaultHeight;
|
|
61
53
|
}
|
|
62
|
-
|
|
63
54
|
vl.$el = $(params.el);
|
|
64
55
|
vl.el = vl.$el[0];
|
|
65
56
|
if (vl.$el.length === 0) return undefined;
|
|
66
57
|
vl.$el[0].f7VirtualList = vl;
|
|
67
58
|
vl.items = vl.params.items;
|
|
68
|
-
|
|
69
59
|
if (vl.params.showFilteredItemsOnly) {
|
|
70
60
|
vl.filteredItems = [];
|
|
71
61
|
}
|
|
72
|
-
|
|
73
62
|
if (vl.params.renderItem) {
|
|
74
63
|
vl.renderItem = vl.params.renderItem;
|
|
75
64
|
}
|
|
76
|
-
|
|
77
65
|
vl.$pageContentEl = vl.$el.parents('.page-content');
|
|
78
66
|
vl.pageContentEl = vl.$pageContentEl[0];
|
|
79
67
|
vl.$scrollableParentEl = vl.params.scrollableParentEl ? $(vl.params.scrollableParentEl).eq(0) : vl.$pageContentEl;
|
|
80
|
-
|
|
81
68
|
if (!vl.$scrollableParentEl.length && vl.$pageContentEl.length) {
|
|
82
69
|
vl.$scrollableParentEl = vl.$pageContentEl;
|
|
83
70
|
}
|
|
71
|
+
vl.scrollableParentEl = vl.$scrollableParentEl[0];
|
|
84
72
|
|
|
85
|
-
|
|
86
|
-
|
|
73
|
+
// Bad scroll
|
|
87
74
|
if (typeof vl.params.updatableScroll !== 'undefined') {
|
|
88
75
|
vl.updatableScroll = vl.params.updatableScroll;
|
|
89
76
|
} else {
|
|
90
77
|
vl.updatableScroll = true;
|
|
91
|
-
|
|
92
78
|
if (device.ios && device.osVersion.split('.')[0] < 8) {
|
|
93
79
|
vl.updatableScroll = false;
|
|
94
80
|
}
|
|
95
|
-
}
|
|
96
|
-
|
|
81
|
+
}
|
|
97
82
|
|
|
83
|
+
// Append <ul>
|
|
98
84
|
const ul = vl.params.ul;
|
|
99
85
|
vl.$ul = ul ? $(vl.params.ul) : vl.$el.children('ul');
|
|
100
|
-
|
|
101
86
|
if (vl.$ul.length === 0 && vl.params.createUl) {
|
|
102
87
|
vl.$el.append('<ul></ul>');
|
|
103
88
|
vl.$ul = vl.$el.children('ul');
|
|
104
89
|
}
|
|
105
|
-
|
|
106
90
|
vl.ul = vl.$ul[0];
|
|
107
91
|
let $itemsWrapEl;
|
|
108
92
|
if (!vl.ul && !vl.params.createUl) $itemsWrapEl = vl.$el;else $itemsWrapEl = vl.$ul;
|
|
@@ -111,7 +95,6 @@ class VirtualList extends Framework7Class {
|
|
|
111
95
|
itemsWrapEl: $itemsWrapEl[0],
|
|
112
96
|
// DOM cached items
|
|
113
97
|
domCache: {},
|
|
114
|
-
displayDomCache: {},
|
|
115
98
|
// Temporary DOM Element
|
|
116
99
|
tempDomElement: document.createElement('ul'),
|
|
117
100
|
// Last repain position
|
|
@@ -128,17 +111,18 @@ class VirtualList extends Framework7Class {
|
|
|
128
111
|
listHeight: undefined,
|
|
129
112
|
dynamicHeight: typeof vl.params.height === 'function',
|
|
130
113
|
autoHeight: vl.params.height === 'auto'
|
|
131
|
-
});
|
|
114
|
+
});
|
|
132
115
|
|
|
133
|
-
|
|
116
|
+
// Install Modules
|
|
117
|
+
vl.useModules();
|
|
134
118
|
|
|
119
|
+
// Attach events
|
|
135
120
|
const handleScrollBound = vl.handleScroll.bind(vl);
|
|
136
121
|
const handleResizeBound = vl.handleResize.bind(vl);
|
|
137
122
|
let $pageEl;
|
|
138
123
|
let $tabEl;
|
|
139
124
|
let $panelEl;
|
|
140
125
|
let $popupEl;
|
|
141
|
-
|
|
142
126
|
vl.attachEvents = function attachEvents() {
|
|
143
127
|
$pageEl = vl.$el.parents('.page').eq(0);
|
|
144
128
|
$tabEl = vl.$el.parents('.tab').filter(tabEl => {
|
|
@@ -153,7 +137,6 @@ class VirtualList extends Framework7Class {
|
|
|
153
137
|
if ($popupEl.length) $popupEl.on('popup:open', handleResizeBound);
|
|
154
138
|
app.on('resize', handleResizeBound);
|
|
155
139
|
};
|
|
156
|
-
|
|
157
140
|
vl.detachEvents = function attachEvents() {
|
|
158
141
|
vl.$scrollableParentEl.off('scroll', handleScrollBound);
|
|
159
142
|
if ($pageEl.length) $pageEl.off('page:reinit', handleResizeBound);
|
|
@@ -161,25 +144,20 @@ class VirtualList extends Framework7Class {
|
|
|
161
144
|
if ($panelEl.length) $panelEl.off('panel:open', handleResizeBound);
|
|
162
145
|
if ($popupEl.length) $popupEl.off('popup:open', handleResizeBound);
|
|
163
146
|
app.off('resize', handleResizeBound);
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
|
|
147
|
+
};
|
|
148
|
+
// Init
|
|
167
149
|
vl.init();
|
|
168
150
|
return vl;
|
|
169
151
|
}
|
|
170
|
-
|
|
171
152
|
setListSize(autoHeightRerender) {
|
|
172
153
|
const vl = this;
|
|
173
154
|
const items = vl.filteredItems || vl.items;
|
|
174
|
-
|
|
175
155
|
if (!autoHeightRerender) {
|
|
176
156
|
vl.pageHeight = vl.$scrollableParentEl[0].offsetHeight;
|
|
177
157
|
}
|
|
178
|
-
|
|
179
158
|
if (vl.dynamicHeight) {
|
|
180
159
|
vl.listHeight = 0;
|
|
181
160
|
vl.heights = [];
|
|
182
|
-
|
|
183
161
|
for (let i = 0; i < items.length; i += 1) {
|
|
184
162
|
const itemHeight = vl.params.height(items[i]);
|
|
185
163
|
vl.listHeight += itemHeight;
|
|
@@ -193,21 +171,17 @@ class VirtualList extends Framework7Class {
|
|
|
193
171
|
vl.$itemsWrapEl.find(`[data-virtual-list-index]`).forEach(el => {
|
|
194
172
|
renderedItems[parseInt(el.getAttribute('data-virtual-list-index'), 10)] = el;
|
|
195
173
|
});
|
|
196
|
-
|
|
197
174
|
for (let i = 0; i < items.length; i += 1) {
|
|
198
175
|
const renderedItem = renderedItems[i];
|
|
199
|
-
|
|
200
176
|
if (renderedItem) {
|
|
201
177
|
if (!vl.heightsCalculated.includes(i)) {
|
|
202
178
|
vl.heights[i] = renderedItem.offsetHeight;
|
|
203
179
|
vl.heightsCalculated.push(i);
|
|
204
180
|
}
|
|
205
181
|
}
|
|
206
|
-
|
|
207
182
|
if (typeof vl.heights[i] === 'undefined') {
|
|
208
183
|
vl.heights[i] = 40;
|
|
209
184
|
}
|
|
210
|
-
|
|
211
185
|
vl.listHeight += vl.heights[i];
|
|
212
186
|
}
|
|
213
187
|
} else {
|
|
@@ -218,80 +192,65 @@ class VirtualList extends Framework7Class {
|
|
|
218
192
|
vl.rowsToRender = vl.rowsPerScreen + vl.rowsBefore + vl.rowsAfter;
|
|
219
193
|
vl.maxBufferHeight = vl.rowsBefore / 2 * vl.params.height;
|
|
220
194
|
}
|
|
221
|
-
|
|
222
195
|
if (vl.updatableScroll || vl.params.setListHeight) {
|
|
223
196
|
vl.$itemsWrapEl.css({
|
|
224
197
|
height: `${vl.listHeight}px`
|
|
225
198
|
});
|
|
226
199
|
}
|
|
227
200
|
}
|
|
228
|
-
|
|
229
201
|
render(force, forceScrollTop) {
|
|
230
202
|
const vl = this;
|
|
231
203
|
if (force) vl.lastRepaintY = null;
|
|
232
204
|
let scrollTop = -(vl.$el[0].getBoundingClientRect().top - vl.$scrollableParentEl[0].getBoundingClientRect().top);
|
|
233
205
|
if (typeof forceScrollTop !== 'undefined') scrollTop = forceScrollTop;
|
|
234
|
-
|
|
235
206
|
if (vl.lastRepaintY === null || Math.abs(scrollTop - vl.lastRepaintY) > vl.maxBufferHeight || !vl.updatableScroll && vl.$scrollableParentEl[0].scrollTop + vl.pageHeight >= vl.$scrollableParentEl[0].scrollHeight) {
|
|
236
207
|
vl.lastRepaintY = scrollTop;
|
|
237
208
|
} else {
|
|
238
209
|
return;
|
|
239
210
|
}
|
|
240
|
-
|
|
241
211
|
const items = vl.filteredItems || vl.items;
|
|
242
212
|
let fromIndex;
|
|
243
213
|
let toIndex;
|
|
244
214
|
let heightBeforeFirstItem = 0;
|
|
245
215
|
let heightBeforeLastItem = 0;
|
|
246
|
-
|
|
247
216
|
if (vl.dynamicHeight || vl.autoHeight) {
|
|
248
217
|
let itemTop = 0;
|
|
249
218
|
let itemHeight;
|
|
250
219
|
vl.maxBufferHeight = vl.pageHeight;
|
|
251
|
-
|
|
252
220
|
for (let j = 0; j < vl.heights.length; j += 1) {
|
|
253
221
|
itemHeight = vl.heights[j];
|
|
254
|
-
|
|
255
222
|
if (typeof fromIndex === 'undefined') {
|
|
256
223
|
if (itemTop + itemHeight >= scrollTop - vl.pageHeight * 2 * vl.params.dynamicHeightBufferSize) fromIndex = j;else heightBeforeFirstItem += itemHeight;
|
|
257
224
|
}
|
|
258
|
-
|
|
259
225
|
if (typeof toIndex === 'undefined') {
|
|
260
226
|
if (itemTop + itemHeight >= scrollTop + vl.pageHeight * 2 * vl.params.dynamicHeightBufferSize || j === vl.heights.length - 1) toIndex = j + 1;
|
|
261
227
|
heightBeforeLastItem += itemHeight;
|
|
262
228
|
}
|
|
263
|
-
|
|
264
229
|
itemTop += itemHeight;
|
|
265
230
|
}
|
|
266
|
-
|
|
267
231
|
toIndex = Math.min(toIndex, items.length);
|
|
268
232
|
} else {
|
|
269
233
|
fromIndex = (parseInt(scrollTop / vl.params.height, 10) - vl.rowsBefore) * vl.params.cols;
|
|
270
|
-
|
|
271
234
|
if (fromIndex < 0) {
|
|
272
235
|
fromIndex = 0;
|
|
273
236
|
}
|
|
274
|
-
|
|
275
237
|
toIndex = Math.min(fromIndex + vl.rowsToRender * vl.params.cols, items.length);
|
|
276
238
|
}
|
|
277
|
-
|
|
278
239
|
let topPosition;
|
|
279
240
|
const renderExternalItems = [];
|
|
280
241
|
vl.reachEnd = false;
|
|
281
242
|
let i;
|
|
282
|
-
|
|
283
243
|
for (i = fromIndex; i < toIndex; i += 1) {
|
|
284
|
-
let itemEl;
|
|
285
|
-
|
|
244
|
+
let itemEl;
|
|
245
|
+
// Define real item index
|
|
286
246
|
const index = vl.items.indexOf(items[i]);
|
|
287
247
|
if (i === fromIndex) vl.currentFromIndex = index;
|
|
288
248
|
if (i === toIndex - 1) vl.currentToIndex = index;
|
|
289
|
-
|
|
290
249
|
if (vl.filteredItems) {
|
|
291
250
|
if (vl.items[index] === vl.filteredItems[vl.filteredItems.length - 1]) vl.reachEnd = true;
|
|
292
|
-
} else if (index === vl.items.length - 1) vl.reachEnd = true;
|
|
293
|
-
|
|
251
|
+
} else if (index === vl.items.length - 1) vl.reachEnd = true;
|
|
294
252
|
|
|
253
|
+
// Find items
|
|
295
254
|
if (vl.params.renderExternal) {
|
|
296
255
|
renderExternalItems.push(items[i]);
|
|
297
256
|
} else if (vl.domCache[index]) {
|
|
@@ -303,13 +262,12 @@ class VirtualList extends Framework7Class {
|
|
|
303
262
|
} else {
|
|
304
263
|
vl.tempDomElement.innerHTML = items[i].toString().trim();
|
|
305
264
|
}
|
|
306
|
-
|
|
307
265
|
itemEl = vl.tempDomElement.childNodes[0];
|
|
308
266
|
if (vl.params.cache) vl.domCache[index] = itemEl;
|
|
309
267
|
itemEl.f7VirtualListIndex = index;
|
|
310
|
-
}
|
|
311
|
-
|
|
268
|
+
}
|
|
312
269
|
|
|
270
|
+
// Set item top position
|
|
313
271
|
if (i === fromIndex) {
|
|
314
272
|
if (vl.dynamicHeight || vl.autoHeight) {
|
|
315
273
|
topPosition = heightBeforeFirstItem;
|
|
@@ -317,26 +275,27 @@ class VirtualList extends Framework7Class {
|
|
|
317
275
|
topPosition = i * vl.params.height / vl.params.cols;
|
|
318
276
|
}
|
|
319
277
|
}
|
|
320
|
-
|
|
321
278
|
if (!vl.params.renderExternal) {
|
|
322
|
-
itemEl.style.top = `${topPosition}px`;
|
|
279
|
+
itemEl.style.top = `${topPosition}px`;
|
|
323
280
|
|
|
324
|
-
|
|
281
|
+
// Before item insert
|
|
282
|
+
vl.emit('local::itemBeforeInsert vlItemBeforeInsert', vl, itemEl, items[i]);
|
|
325
283
|
|
|
284
|
+
// Append item to fragment
|
|
326
285
|
vl.fragment.appendChild(itemEl);
|
|
327
286
|
}
|
|
328
|
-
}
|
|
329
|
-
|
|
287
|
+
}
|
|
330
288
|
|
|
289
|
+
// Update list height with not updatable scroll
|
|
331
290
|
if (!vl.updatableScroll) {
|
|
332
291
|
if (vl.dynamicHeight || vl.autoHeight) {
|
|
333
292
|
vl.itemsWrapEl.style.height = `${heightBeforeLastItem}px`;
|
|
334
293
|
} else {
|
|
335
294
|
vl.itemsWrapEl.style.height = `${i * vl.params.height / vl.params.cols}px`;
|
|
336
295
|
}
|
|
337
|
-
}
|
|
338
|
-
|
|
296
|
+
}
|
|
339
297
|
|
|
298
|
+
// Update list html
|
|
340
299
|
if (vl.params.renderExternal) {
|
|
341
300
|
if (items && items.length === 0) {
|
|
342
301
|
vl.reachEnd = true;
|
|
@@ -345,21 +304,17 @@ class VirtualList extends Framework7Class {
|
|
|
345
304
|
vl.emit('local::beforeClear vlBeforeClear', vl, vl.fragment);
|
|
346
305
|
vl.itemsWrapEl.innerHTML = '';
|
|
347
306
|
vl.emit('local::itemsBeforeInsert vlItemsBeforeInsert', vl, vl.fragment);
|
|
348
|
-
|
|
349
307
|
if (items && items.length === 0) {
|
|
350
308
|
vl.reachEnd = true;
|
|
351
309
|
if (vl.params.emptyTemplate) vl.itemsWrapEl.innerHTML = vl.params.emptyTemplate;
|
|
352
310
|
} else {
|
|
353
311
|
vl.itemsWrapEl.appendChild(vl.fragment);
|
|
354
312
|
}
|
|
355
|
-
|
|
356
313
|
vl.emit('local::itemsAfterInsert vlItemsAfterInsert', vl, vl.fragment);
|
|
357
314
|
}
|
|
358
|
-
|
|
359
315
|
if (typeof forceScrollTop !== 'undefined' && force) {
|
|
360
316
|
vl.$scrollableParentEl.scrollTop(forceScrollTop, 0);
|
|
361
317
|
}
|
|
362
|
-
|
|
363
318
|
if (vl.params.renderExternal) {
|
|
364
319
|
vl.params.renderExternal(vl, {
|
|
365
320
|
fromIndex,
|
|
@@ -369,52 +324,42 @@ class VirtualList extends Framework7Class {
|
|
|
369
324
|
items: renderExternalItems
|
|
370
325
|
});
|
|
371
326
|
}
|
|
372
|
-
|
|
373
327
|
if (vl.autoHeight) {
|
|
374
328
|
requestAnimationFrame(() => {
|
|
375
329
|
vl.setListSize(true);
|
|
376
330
|
});
|
|
377
331
|
}
|
|
378
|
-
}
|
|
379
|
-
|
|
332
|
+
}
|
|
380
333
|
|
|
334
|
+
// Filter
|
|
381
335
|
filterItems(indexes, resetScrollTop) {
|
|
382
336
|
if (resetScrollTop === void 0) {
|
|
383
337
|
resetScrollTop = true;
|
|
384
338
|
}
|
|
385
|
-
|
|
386
339
|
const vl = this;
|
|
387
340
|
vl.filteredItems = [];
|
|
388
|
-
|
|
389
341
|
for (let i = 0; i < indexes.length; i += 1) {
|
|
390
342
|
vl.filteredItems.push(vl.items[indexes[i]]);
|
|
391
343
|
}
|
|
392
|
-
|
|
393
344
|
if (resetScrollTop) {
|
|
394
345
|
vl.$scrollableParentEl[0].scrollTop = 0;
|
|
395
346
|
}
|
|
396
|
-
|
|
397
347
|
vl.update();
|
|
398
348
|
}
|
|
399
|
-
|
|
400
349
|
resetFilter() {
|
|
401
350
|
const vl = this;
|
|
402
|
-
|
|
403
351
|
if (vl.params.showFilteredItemsOnly) {
|
|
404
352
|
vl.filteredItems = [];
|
|
405
353
|
} else {
|
|
406
354
|
vl.filteredItems = null;
|
|
407
355
|
delete vl.filteredItems;
|
|
408
356
|
}
|
|
409
|
-
|
|
410
357
|
vl.update();
|
|
411
358
|
}
|
|
412
|
-
|
|
413
359
|
scrollToItem(index) {
|
|
414
360
|
const vl = this;
|
|
415
361
|
if (index > vl.items.length) return false;
|
|
416
362
|
let itemTop = 0;
|
|
417
|
-
|
|
418
363
|
if (vl.dynamicHeight || vl.autoHeight) {
|
|
419
364
|
for (let i = 0; i < index; i += 1) {
|
|
420
365
|
itemTop += vl.heights[i];
|
|
@@ -422,50 +367,43 @@ class VirtualList extends Framework7Class {
|
|
|
422
367
|
} else {
|
|
423
368
|
itemTop = index * vl.params.height;
|
|
424
369
|
}
|
|
425
|
-
|
|
426
370
|
const listTop = vl.$el[0].offsetTop;
|
|
427
371
|
vl.render(true, listTop + itemTop - parseInt(vl.$scrollableParentEl.css('padding-top'), 10));
|
|
428
372
|
return true;
|
|
429
373
|
}
|
|
430
|
-
|
|
431
374
|
handleScroll() {
|
|
432
375
|
const vl = this;
|
|
433
376
|
vl.render();
|
|
434
|
-
}
|
|
435
|
-
|
|
377
|
+
}
|
|
436
378
|
|
|
379
|
+
// Handle resize event
|
|
437
380
|
isVisible() {
|
|
438
381
|
const vl = this;
|
|
439
382
|
return !!(vl.el.offsetWidth || vl.el.offsetHeight || vl.el.getClientRects().length);
|
|
440
383
|
}
|
|
441
|
-
|
|
442
384
|
handleResize() {
|
|
443
385
|
const vl = this;
|
|
444
|
-
|
|
445
386
|
if (vl.isVisible()) {
|
|
446
387
|
vl.heightsCalculated = [];
|
|
447
388
|
vl.setListSize();
|
|
448
389
|
vl.render(true);
|
|
449
390
|
}
|
|
450
|
-
}
|
|
451
|
-
|
|
391
|
+
}
|
|
452
392
|
|
|
393
|
+
// Append
|
|
453
394
|
appendItems(items) {
|
|
454
395
|
const vl = this;
|
|
455
|
-
|
|
456
396
|
for (let i = 0; i < items.length; i += 1) {
|
|
457
397
|
vl.items.push(items[i]);
|
|
458
398
|
}
|
|
459
|
-
|
|
460
399
|
vl.update();
|
|
461
400
|
}
|
|
462
|
-
|
|
463
401
|
appendItem(item) {
|
|
464
402
|
const vl = this;
|
|
465
403
|
vl.appendItems([item]);
|
|
466
|
-
}
|
|
467
|
-
|
|
404
|
+
}
|
|
468
405
|
|
|
406
|
+
// Replace
|
|
469
407
|
replaceAllItems(items) {
|
|
470
408
|
const vl = this;
|
|
471
409
|
vl.items = items;
|
|
@@ -473,22 +411,19 @@ class VirtualList extends Framework7Class {
|
|
|
473
411
|
vl.domCache = {};
|
|
474
412
|
vl.update();
|
|
475
413
|
}
|
|
476
|
-
|
|
477
414
|
replaceItem(index, item) {
|
|
478
415
|
const vl = this;
|
|
479
416
|
vl.items[index] = item;
|
|
480
417
|
if (vl.params.cache) delete vl.domCache[index];
|
|
481
418
|
vl.update();
|
|
482
|
-
}
|
|
483
|
-
|
|
419
|
+
}
|
|
484
420
|
|
|
421
|
+
// Prepend
|
|
485
422
|
prependItems(items) {
|
|
486
423
|
const vl = this;
|
|
487
|
-
|
|
488
424
|
for (let i = items.length - 1; i >= 0; i -= 1) {
|
|
489
425
|
vl.items.unshift(items[i]);
|
|
490
426
|
}
|
|
491
|
-
|
|
492
427
|
if (vl.params.cache) {
|
|
493
428
|
const newCache = {};
|
|
494
429
|
Object.keys(vl.domCache).forEach(cached => {
|
|
@@ -496,24 +431,21 @@ class VirtualList extends Framework7Class {
|
|
|
496
431
|
});
|
|
497
432
|
vl.domCache = newCache;
|
|
498
433
|
}
|
|
499
|
-
|
|
500
434
|
vl.update();
|
|
501
435
|
}
|
|
502
|
-
|
|
503
436
|
prependItem(item) {
|
|
504
437
|
const vl = this;
|
|
505
438
|
vl.prependItems([item]);
|
|
506
|
-
}
|
|
507
|
-
|
|
439
|
+
}
|
|
508
440
|
|
|
441
|
+
// Move
|
|
509
442
|
moveItem(from, to) {
|
|
510
443
|
const vl = this;
|
|
511
444
|
const fromIndex = from;
|
|
512
445
|
let toIndex = to;
|
|
513
|
-
if (fromIndex === toIndex) return;
|
|
514
|
-
|
|
446
|
+
if (fromIndex === toIndex) return;
|
|
447
|
+
// remove item from array
|
|
515
448
|
const item = vl.items.splice(fromIndex, 1)[0];
|
|
516
|
-
|
|
517
449
|
if (toIndex >= vl.items.length) {
|
|
518
450
|
// Add item to the end
|
|
519
451
|
vl.items.push(item);
|
|
@@ -521,9 +453,8 @@ class VirtualList extends Framework7Class {
|
|
|
521
453
|
} else {
|
|
522
454
|
// Add item to new index
|
|
523
455
|
vl.items.splice(toIndex, 0, item);
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
|
|
456
|
+
}
|
|
457
|
+
// Update cache
|
|
527
458
|
if (vl.params.cache) {
|
|
528
459
|
const newCache = {};
|
|
529
460
|
Object.keys(vl.domCache).forEach(cached => {
|
|
@@ -537,71 +468,61 @@ class VirtualList extends Framework7Class {
|
|
|
537
468
|
});
|
|
538
469
|
vl.domCache = newCache;
|
|
539
470
|
}
|
|
540
|
-
|
|
541
471
|
vl.update();
|
|
542
|
-
}
|
|
543
|
-
|
|
472
|
+
}
|
|
544
473
|
|
|
474
|
+
// Insert before
|
|
545
475
|
insertItemBefore(index, item) {
|
|
546
476
|
const vl = this;
|
|
547
|
-
|
|
548
477
|
if (index === 0) {
|
|
549
478
|
vl.prependItem(item);
|
|
550
479
|
return;
|
|
551
480
|
}
|
|
552
|
-
|
|
553
481
|
if (index >= vl.items.length) {
|
|
554
482
|
vl.appendItem(item);
|
|
555
483
|
return;
|
|
556
484
|
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
485
|
+
vl.items.splice(index, 0, item);
|
|
486
|
+
// Update cache
|
|
560
487
|
if (vl.params.cache) {
|
|
561
488
|
const newCache = {};
|
|
562
489
|
Object.keys(vl.domCache).forEach(cached => {
|
|
563
490
|
const cachedIndex = parseInt(cached, 10);
|
|
564
|
-
|
|
565
491
|
if (cachedIndex >= index) {
|
|
566
492
|
newCache[cachedIndex + 1] = vl.domCache[cachedIndex];
|
|
567
493
|
}
|
|
568
494
|
});
|
|
569
495
|
vl.domCache = newCache;
|
|
570
496
|
}
|
|
571
|
-
|
|
572
497
|
vl.update();
|
|
573
|
-
}
|
|
574
|
-
|
|
498
|
+
}
|
|
575
499
|
|
|
500
|
+
// Delete
|
|
576
501
|
deleteItems(indexes) {
|
|
577
502
|
const vl = this;
|
|
578
503
|
let prevIndex;
|
|
579
504
|
let indexShift = 0;
|
|
580
|
-
|
|
581
505
|
for (let i = 0; i < indexes.length; i += 1) {
|
|
582
506
|
let index = indexes[i];
|
|
583
|
-
|
|
584
507
|
if (typeof prevIndex !== 'undefined') {
|
|
585
508
|
if (index > prevIndex) {
|
|
586
509
|
indexShift = -i;
|
|
587
510
|
}
|
|
588
511
|
}
|
|
589
|
-
|
|
590
512
|
index += indexShift;
|
|
591
|
-
prevIndex = indexes[i];
|
|
592
|
-
|
|
593
|
-
const deletedItem = vl.items.splice(index, 1)[0];
|
|
513
|
+
prevIndex = indexes[i];
|
|
514
|
+
// Delete item
|
|
515
|
+
const deletedItem = vl.items.splice(index, 1)[0];
|
|
594
516
|
|
|
517
|
+
// Delete from filtered
|
|
595
518
|
if (vl.filteredItems && vl.filteredItems.indexOf(deletedItem) >= 0) {
|
|
596
519
|
vl.filteredItems.splice(vl.filteredItems.indexOf(deletedItem), 1);
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
|
|
520
|
+
}
|
|
521
|
+
// Update cache
|
|
600
522
|
if (vl.params.cache) {
|
|
601
523
|
const newCache = {};
|
|
602
524
|
Object.keys(vl.domCache).forEach(cached => {
|
|
603
525
|
const cachedIndex = parseInt(cached, 10);
|
|
604
|
-
|
|
605
526
|
if (cachedIndex === index) {
|
|
606
527
|
delete vl.domCache[index];
|
|
607
528
|
} else if (parseInt(cached, 10) > index) {
|
|
@@ -613,10 +534,8 @@ class VirtualList extends Framework7Class {
|
|
|
613
534
|
vl.domCache = newCache;
|
|
614
535
|
}
|
|
615
536
|
}
|
|
616
|
-
|
|
617
537
|
vl.update();
|
|
618
538
|
}
|
|
619
|
-
|
|
620
539
|
deleteAllItems() {
|
|
621
540
|
const vl = this;
|
|
622
541
|
vl.items = [];
|
|
@@ -624,38 +543,33 @@ class VirtualList extends Framework7Class {
|
|
|
624
543
|
if (vl.params.cache) vl.domCache = {};
|
|
625
544
|
vl.update();
|
|
626
545
|
}
|
|
627
|
-
|
|
628
546
|
deleteItem(index) {
|
|
629
547
|
const vl = this;
|
|
630
548
|
vl.deleteItems([index]);
|
|
631
|
-
}
|
|
632
|
-
|
|
549
|
+
}
|
|
633
550
|
|
|
551
|
+
// Clear cache
|
|
634
552
|
clearCache() {
|
|
635
553
|
const vl = this;
|
|
636
554
|
vl.domCache = {};
|
|
637
|
-
}
|
|
638
|
-
|
|
555
|
+
}
|
|
639
556
|
|
|
557
|
+
// Update Virtual List
|
|
640
558
|
update(deleteCache) {
|
|
641
559
|
const vl = this;
|
|
642
|
-
|
|
643
560
|
if (deleteCache && vl.params.cache) {
|
|
644
561
|
vl.domCache = {};
|
|
645
562
|
}
|
|
646
|
-
|
|
647
563
|
vl.heightsCalculated = [];
|
|
648
564
|
vl.setListSize();
|
|
649
565
|
vl.render(true);
|
|
650
566
|
}
|
|
651
|
-
|
|
652
567
|
init() {
|
|
653
568
|
const vl = this;
|
|
654
569
|
vl.attachEvents();
|
|
655
570
|
vl.setListSize();
|
|
656
571
|
vl.render();
|
|
657
572
|
}
|
|
658
|
-
|
|
659
573
|
destroy() {
|
|
660
574
|
let vl = this;
|
|
661
575
|
vl.detachEvents();
|
|
@@ -664,7 +578,5 @@ class VirtualList extends Framework7Class {
|
|
|
664
578
|
deleteProps(vl);
|
|
665
579
|
vl = null;
|
|
666
580
|
}
|
|
667
|
-
|
|
668
581
|
}
|
|
669
|
-
|
|
670
582
|
export default VirtualList;
|
|
@@ -84,7 +84,7 @@ export namespace VirtualList {
|
|
|
84
84
|
rowsAfter?: number;
|
|
85
85
|
/** Number of items per row. Doesn't compatible when using Virtual List with dynamic height (default 1) */
|
|
86
86
|
cols?: number;
|
|
87
|
-
/** If number - list item height in px. If function then function should return item height. If "auto" - will automatically calculate each items heights. By default equals to 44 for iOS theme, 48 for MD theme
|
|
87
|
+
/** If number - list item height in px. If function then function should return item height. If "auto" - will automatically calculate each items heights. By default equals to 44 for iOS theme, 48 for MD theme */
|
|
88
88
|
height?: number | Function | string;
|
|
89
89
|
/** This optional function allows to use custom function to render item HTML. It could be used instead of template parameter */
|
|
90
90
|
renderItem?(item: any): string;
|