framework7 7.0.0-beta.2 → 7.0.0-beta.20
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 -2
- package/components/accordion/{accordion.umd.js → accordion.lazy.js} +1 -1
- package/components/actions/actions-class.js +11 -6
- package/components/actions/actions-rtl.css +1 -1
- package/components/actions/actions.css +1 -1
- package/components/actions/actions.d.ts +2 -0
- package/components/actions/actions.js +13 -4
- package/components/actions/actions.lazy.js +1 -0
- package/components/actions/actions.less +3 -0
- package/components/app/app-class.d.ts +10 -10
- package/components/app/app-class.js +43 -37
- package/components/app/app.less +3 -3
- package/components/app/load-module.js +4 -4
- package/components/appbar/{appbar.umd.js → appbar.lazy.js} +0 -0
- package/components/area-chart/area-chart-class.js +38 -22
- package/components/area-chart/area-chart-rtl.css +1 -1
- package/components/area-chart/area-chart.css +1 -1
- package/components/area-chart/area-chart.js +3 -3
- package/components/area-chart/area-chart.lazy.js +1 -0
- package/components/autocomplete/autocomplete-class.js +10 -6
- package/components/autocomplete/autocomplete-rtl.css +1 -1
- package/components/autocomplete/autocomplete.css +1 -1
- package/components/autocomplete/autocomplete.js +3 -3
- package/components/autocomplete/autocomplete.lazy.js +1 -0
- package/components/breadcrumbs/breadcrumbs-aurora.less +2 -0
- package/components/breadcrumbs/breadcrumbs-ios.less +2 -0
- package/components/breadcrumbs/breadcrumbs-md.less +2 -0
- package/components/breadcrumbs/breadcrumbs-rtl.css +1 -0
- package/components/breadcrumbs/breadcrumbs-vars.less +36 -0
- package/components/breadcrumbs/breadcrumbs.css +1 -0
- package/components/breadcrumbs/breadcrumbs.d.ts +15 -0
- package/components/breadcrumbs/breadcrumbs.js +13 -0
- package/components/breadcrumbs/breadcrumbs.lazy.js +1 -0
- package/components/breadcrumbs/breadcrumbs.less +100 -0
- package/components/calendar/calendar-class.js +222 -130
- package/components/calendar/calendar-rtl.css +1 -1
- package/components/calendar/calendar-vars.less +6 -10
- package/components/calendar/calendar.css +1 -1
- package/components/calendar/calendar.d.ts +2 -0
- package/components/calendar/calendar.js +9 -4
- package/components/calendar/calendar.lazy.js +1 -0
- package/components/calendar/calendar.less +20 -16
- package/components/card/card-rtl.css +1 -1
- package/components/card/card.css +1 -1
- package/components/card/card.js +27 -7
- package/components/card/card.lazy.js +1 -0
- package/components/checkbox/checkbox-rtl.css +1 -1
- package/components/checkbox/checkbox.css +1 -1
- package/components/checkbox/{checkbox.umd.js → checkbox.lazy.js} +0 -0
- package/components/chip/chip-rtl.css +1 -1
- package/components/chip/chip.css +1 -1
- package/components/chip/{chip.umd.js → chip.lazy.js} +0 -0
- package/components/color-picker/color-picker-class.js +37 -21
- 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 +8 -4
- package/components/color-picker/{color-picker.umd.js → color-picker.lazy.js} +1 -1
- package/components/color-picker/modules/alpha-slider.js +1 -1
- package/components/color-picker/modules/brightness-slider.js +2 -2
- package/components/color-picker/modules/current-color.js +1 -1
- package/components/color-picker/modules/hex.js +1 -1
- package/components/color-picker/modules/hs-spectrum.js +4 -4
- package/components/color-picker/modules/hsb-sliders.js +3 -3
- package/components/color-picker/modules/hue-slider.js +1 -1
- package/components/color-picker/modules/initial-current-colors.js +1 -1
- package/components/color-picker/modules/palette.js +2 -2
- package/components/color-picker/modules/rgb-bars.js +2 -2
- package/components/color-picker/modules/rgb-sliders.js +2 -2
- package/components/color-picker/modules/sb-spectrum.js +3 -3
- package/components/color-picker/modules/wheel.js +3 -3
- package/components/contacts-list/contacts-list-rtl.css +1 -1
- package/components/contacts-list/contacts-list.css +1 -1
- package/components/contacts-list/{contacts-list.umd.js → contacts-list.lazy.js} +0 -0
- package/components/data-table/data-table-class.js +8 -4
- package/components/data-table/data-table-rtl.css +1 -1
- package/components/data-table/data-table.css +1 -1
- package/components/data-table/data-table.js +3 -3
- package/components/data-table/data-table.lazy.js +1 -0
- package/components/dialog/dialog-class.js +5 -5
- package/components/dialog/dialog-rtl.css +1 -1
- package/components/dialog/dialog.css +1 -1
- package/components/dialog/dialog.js +33 -9
- package/components/dialog/dialog.lazy.js +1 -0
- package/components/elevation/{elevation.umd.js → elevation.lazy.js} +0 -0
- package/components/fab/fab-rtl.css +1 -1
- package/components/fab/fab.css +1 -1
- package/components/fab/fab.js +17 -5
- package/components/fab/fab.lazy.js +1 -0
- package/components/form/form.js +2 -2
- package/components/form/{form.umd.js → form.lazy.js} +1 -1
- package/components/gauge/gauge-class.js +14 -6
- package/components/gauge/gauge.d.ts +2 -2
- package/components/gauge/gauge.js +4 -4
- package/components/gauge/gauge.lazy.js +1 -0
- package/components/grid/grid-rtl.css +1 -1
- package/components/grid/grid.css +1 -1
- package/components/grid/grid.js +2 -2
- package/components/grid/{grid.umd.js → grid.lazy.js} +0 -0
- package/components/infinite-scroll/infinite-scroll.js +2 -2
- package/components/infinite-scroll/{infinite-scroll.umd.js → infinite-scroll.lazy.js} +0 -0
- package/components/input/input-rtl.css +1 -1
- package/components/input/input.css +1 -1
- package/components/input/input.js +8 -4
- package/components/input/input.lazy.js +1 -0
- package/components/input/input.less +1 -1
- package/components/lazy/lazy.js +3 -3
- package/components/lazy/{lazy.umd.js → lazy.lazy.js} +0 -0
- package/components/list-index/list-index-class.js +9 -5
- package/components/list-index/list-index.d.ts +1 -1
- package/components/list-index/list-index.js +4 -4
- package/components/list-index/list-index.lazy.js +1 -0
- package/components/login-screen/login-screen-class.js +3 -3
- package/components/login-screen/login-screen-rtl.css +1 -1
- package/components/login-screen/login-screen.css +1 -1
- package/components/login-screen/login-screen.js +12 -4
- package/components/login-screen/login-screen.lazy.js +1 -0
- package/components/login-screen/login-screen.less +1 -1
- package/components/menu/menu.js +12 -4
- package/components/menu/menu.lazy.js +1 -0
- package/components/messagebar/messagebar-class.js +28 -8
- package/components/messagebar/messagebar-rtl.css +1 -1
- package/components/messagebar/messagebar.css +1 -1
- package/components/messagebar/messagebar.js +4 -4
- package/components/messagebar/messagebar.lazy.js +1 -0
- package/components/messages/messages-class.js +64 -28
- package/components/messages/messages-rtl.css +1 -1
- package/components/messages/messages.css +1 -1
- package/components/messages/messages.js +3 -3
- package/components/messages/messages.lazy.js +1 -0
- package/components/modal/custom-modal-class.js +3 -3
- package/components/modal/modal-class.js +13 -3
- package/components/modal/modal.js +2 -2
- package/components/navbar/navbar.js +29 -5
- package/components/notification/notification-aurora.less +1 -1
- package/components/notification/notification-class.js +4 -4
- package/components/notification/notification-ios.less +1 -1
- package/components/notification/notification-rtl.css +1 -1
- package/components/notification/notification.css +1 -1
- package/components/notification/notification.d.ts +4 -4
- package/components/notification/notification.js +3 -3
- package/components/notification/{notification.umd.js → notification.lazy.js} +0 -0
- package/components/page/page-vars.less +1 -1
- package/components/panel/panel-class.js +40 -12
- package/components/panel/panel.js +43 -11
- package/components/panel/panel.lazy.js +1 -0
- package/components/panel/resizable-panel.js +3 -3
- package/components/panel/swipe-panel.js +2 -2
- package/components/photo-browser/photo-browser-class.js +46 -12
- package/components/photo-browser/photo-browser.js +2 -2
- package/components/photo-browser/photo-browser.lazy.js +1 -0
- package/components/picker/picker-class.js +17 -13
- package/components/picker/picker-column.js +35 -271
- package/components/picker/picker-rtl.css +1 -1
- package/components/picker/picker.css +1 -1
- package/components/picker/picker.d.ts +2 -13
- package/components/picker/picker.js +8 -9
- package/components/picker/picker.lazy.js +1 -0
- package/components/picker/picker.less +28 -10
- package/components/pie-chart/pie-chart-class.js +20 -11
- package/components/pie-chart/pie-chart.js +3 -3
- package/components/pie-chart/pie-chart.lazy.js +1 -0
- package/components/popover/popover-class.js +24 -7
- package/components/popover/popover-rtl.css +1 -1
- package/components/popover/popover.css +1 -1
- package/components/popover/popover.d.ts +2 -0
- package/components/popover/popover.js +15 -6
- package/components/popover/popover.lazy.js +1 -0
- package/components/popover/popover.less +3 -0
- package/components/popup/popup-class.js +11 -6
- package/components/popup/popup-rtl.css +1 -1
- package/components/popup/popup.css +1 -1
- package/components/popup/popup.d.ts +4 -0
- package/components/popup/popup.js +13 -4
- package/components/popup/popup.lazy.js +1 -0
- package/components/popup/popup.less +25 -21
- package/components/preloader/preloader-ios.less +3 -0
- package/components/preloader/preloader-rtl.css +1 -1
- package/components/preloader/preloader.css +1 -1
- package/components/preloader/preloader.d.ts +4 -0
- package/components/preloader/preloader.js +12 -4
- package/components/preloader/preloader.lazy.js +1 -0
- package/components/progressbar/progressbar-aurora.less +32 -13
- package/components/progressbar/progressbar-ios.less +19 -7
- package/components/progressbar/progressbar-md.less +64 -28
- package/components/progressbar/progressbar-rtl.css +1 -1
- package/components/progressbar/progressbar.css +1 -1
- package/components/progressbar/progressbar.js +19 -6
- package/components/progressbar/progressbar.lazy.js +1 -0
- package/components/progressbar/progressbar.less +16 -4
- package/components/pull-to-refresh/pull-to-refresh-class.js +10 -6
- package/components/pull-to-refresh/pull-to-refresh.js +4 -4
- package/components/pull-to-refresh/pull-to-refresh.lazy.js +1 -0
- package/components/radio/radio-rtl.css +1 -1
- package/components/radio/radio.css +1 -1
- package/components/radio/{radio.umd.js → radio.lazy.js} +0 -0
- package/components/range/range-class.js +4 -4
- package/components/range/range.d.ts +23 -5
- package/components/range/range.js +14 -6
- package/components/range/{range.umd.js → range.lazy.js} +1 -1
- package/components/searchbar/searchbar-class.js +11 -7
- package/components/searchbar/searchbar-rtl.css +1 -1
- package/components/searchbar/searchbar.css +1 -1
- package/components/searchbar/searchbar.js +24 -8
- package/components/searchbar/searchbar.lazy.js +1 -0
- package/components/searchbar/searchbar.less +1 -1
- package/components/sheet/sheet-class.js +26 -7
- package/components/sheet/sheet-rtl.css +1 -1
- package/components/sheet/sheet.css +1 -1
- package/components/sheet/sheet.d.ts +2 -0
- package/components/sheet/sheet.js +15 -6
- package/components/sheet/sheet.lazy.js +1 -0
- package/components/sheet/sheet.less +19 -16
- package/components/skeleton/skeleton-rtl.css +1 -1
- package/components/skeleton/skeleton-vars.less +1 -1
- package/components/skeleton/skeleton.css +1 -1
- package/components/skeleton/{skeleton.umd.js → skeleton.lazy.js} +0 -0
- package/components/smart-select/smart-select-class.js +19 -7
- package/components/smart-select/smart-select.js +4 -4
- package/components/smart-select/smart-select.lazy.js +1 -0
- package/components/sortable/sortable-rtl.css +1 -1
- package/components/sortable/sortable.css +1 -1
- package/components/sortable/sortable.d.ts +5 -1
- package/components/sortable/sortable.js +48 -11
- package/components/sortable/sortable.lazy.js +1 -0
- package/components/statusbar/statusbar.d.ts +9 -9
- package/components/statusbar/statusbar.js +8 -4
- package/components/stepper/stepper-class.js +3 -3
- package/components/stepper/stepper.js +14 -6
- package/components/stepper/{stepper.umd.js → stepper.lazy.js} +1 -1
- package/components/subnavbar/subnavbar.js +1 -1
- package/components/swipeout/swipeout-rtl.css +1 -1
- package/components/swipeout/swipeout.css +1 -1
- package/components/swipeout/swipeout.js +19 -6
- package/components/swipeout/{swipeout.umd.js → swipeout.lazy.js} +1 -1
- package/components/swiper/swiper-rtl.css +1 -1
- package/components/swiper/swiper.css +1 -1
- package/components/swiper/swiper.js +2 -2
- package/components/swiper/swiper.lazy.js +1 -0
- package/components/tabs/tabs.js +16 -9
- package/components/tabs/tabs.lazy.js +1 -0
- package/components/text-editor/text-editor-class.js +5 -5
- package/components/text-editor/text-editor-rtl.css +1 -1
- package/components/text-editor/text-editor.css +1 -1
- package/components/text-editor/text-editor.js +4 -4
- package/components/text-editor/{text-editor.umd.js → text-editor.lazy.js} +1 -1
- package/components/timeline/timeline-rtl.css +1 -1
- package/components/timeline/timeline.css +1 -1
- package/components/timeline/{timeline.umd.js → timeline.lazy.js} +0 -0
- package/components/toast/toast-class.js +4 -4
- package/components/toast/toast.d.ts +2 -2
- package/components/toast/toast.js +3 -3
- package/components/toast/{toast.umd.js → toast.lazy.js} +0 -0
- package/components/toggle/toggle-class.js +9 -5
- package/components/toggle/toggle-rtl.css +1 -1
- package/components/toggle/toggle.css +1 -1
- package/components/toggle/toggle.js +3 -3
- package/components/toggle/toggle.lazy.js +1 -0
- package/components/toolbar/toolbar-aurora.less +0 -13
- package/components/toolbar/toolbar-md.less +0 -13
- package/components/toolbar/toolbar.js +13 -5
- package/components/toolbar/toolbar.less +13 -0
- package/components/tooltip/tooltip-class.js +9 -5
- package/components/tooltip/tooltip.js +3 -3
- package/components/tooltip/tooltip.lazy.js +1 -0
- package/components/touch-ripple/touch-ripple-class.js +1 -1
- package/components/touch-ripple/touch-ripple-vars.less +1 -1
- package/components/touch-ripple/touch-ripple.js +6 -2
- package/components/treeview/treeview-rtl.css +1 -1
- package/components/treeview/treeview.css +1 -1
- package/components/treeview/treeview.js +2 -2
- package/components/treeview/{treeview.umd.js → treeview.lazy.js} +1 -1
- package/components/typography/{typography.umd.js → typography.lazy.js} +0 -0
- package/components/view/resizable-view.js +3 -3
- package/components/view/view-class.js +18 -7
- package/components/view/view.d.ts +5 -1
- package/components/view/view.js +5 -3
- package/components/virtual-list/virtual-list-class.js +58 -13
- package/components/virtual-list/virtual-list.d.ts +2 -2
- package/components/virtual-list/virtual-list.js +2 -2
- package/components/virtual-list/virtual-list.lazy.js +1 -0
- package/framework7-bundle-rtl.css +513 -411
- package/framework7-bundle-rtl.min.css +4 -4
- package/framework7-bundle.css +498 -395
- package/framework7-bundle.esm.js +87 -86
- package/framework7-bundle.js +2728 -1257
- package/framework7-bundle.js.map +1 -1
- package/framework7-bundle.less +4 -3
- package/framework7-bundle.min.css +4 -4
- package/framework7-bundle.min.js +4 -4
- package/framework7-bundle.min.js.map +1 -1
- package/framework7-lite-bundle.esm.js +81 -80
- package/framework7-lite.esm.js +27 -27
- package/framework7-rtl.css +61 -70
- package/framework7-rtl.min.css +4 -4
- package/framework7-types.d.ts +5 -1
- package/framework7.css +60 -68
- package/framework7.d.ts +4 -0
- package/framework7.esm.js +30 -30
- package/framework7.js +675 -255
- package/framework7.js.map +1 -1
- package/framework7.less +3 -3
- package/framework7.min.css +4 -4
- package/framework7.min.js +4 -4
- package/framework7.min.js.map +1 -1
- package/less/mixins.less +2 -2
- package/modules/clicks/clicks.js +2 -2
- package/modules/component/$h.js +6 -2
- package/modules/component/$jsx.js +6 -2
- package/modules/component/component-class.js +40 -27
- package/modules/component/component.d.ts +2 -2
- package/modules/component/component.js +11 -10
- package/modules/component/eventslisteners.js +6 -2
- package/modules/component/parse-component.js +2 -2
- package/modules/component/patch.js +5 -5
- package/modules/component/snabbdom/h.js +2 -2
- package/modules/component/snabbdom/snabbdom.bundle.js +7 -7
- package/modules/component/snabbdom/snabbdom.js +3 -3
- package/modules/component/snabbdom/thunk.js +1 -1
- package/modules/component/snabbdom/tovnode.js +2 -2
- package/modules/component/vdom.js +35 -20
- package/modules/device/device.js +2 -2
- package/modules/history/history.js +1 -1
- package/modules/request/request.js +1 -1
- package/modules/resize/resize.js +1 -1
- package/modules/router/back.js +24 -14
- package/modules/router/clear-previous-history.js +2 -2
- package/modules/router/component-loader.js +81 -24
- package/modules/router/modal.js +8 -4
- package/modules/router/navigate.js +25 -55
- package/modules/router/redirect.js +6 -2
- package/modules/router/router-class.js +50 -21
- package/modules/router/router.js +1 -1
- package/modules/router/swipe-back.js +12 -11
- package/modules/router/tab.js +10 -6
- package/modules/service-worker/service-worker.js +1 -1
- package/modules/store/create-store.js +11 -3
- package/modules/store/store.js +1 -1
- package/modules/support/support.js +1 -1
- package/modules/touch/touch.js +4 -4
- package/modules/utils/utils.js +1 -1
- package/package.json +12 -6
- package/shared/$jsx.js +6 -1
- package/shared/class.js +35 -7
- package/shared/constructor-methods.js +26 -5
- package/shared/events-class.js +15 -3
- package/shared/get-device.d.ts +0 -2
- package/shared/get-device.js +11 -7
- package/shared/history.js +2 -2
- package/shared/modal-methods.js +13 -5
- package/shared/request.js +46 -8
- package/shared/utils.js +47 -10
- package/components/actions/actions.umd.js +0 -1
- package/components/area-chart/area-chart.umd.js +0 -1
- package/components/autocomplete/autocomplete.umd.js +0 -1
- package/components/calendar/calendar.umd.js +0 -1
- package/components/card/card.umd.js +0 -1
- package/components/data-table/data-table.umd.js +0 -1
- package/components/dialog/dialog.umd.js +0 -1
- package/components/fab/fab.umd.js +0 -1
- package/components/gauge/gauge.umd.js +0 -1
- package/components/input/input.umd.js +0 -1
- package/components/list-index/list-index.umd.js +0 -1
- package/components/login-screen/login-screen.umd.js +0 -1
- package/components/menu/menu.umd.js +0 -1
- package/components/messagebar/messagebar.umd.js +0 -1
- package/components/messages/messages.umd.js +0 -1
- package/components/panel/panel.umd.js +0 -1
- package/components/photo-browser/photo-browser.umd.js +0 -1
- package/components/picker/picker.umd.js +0 -1
- package/components/pie-chart/pie-chart.umd.js +0 -1
- package/components/popover/popover.umd.js +0 -1
- package/components/popup/popup.umd.js +0 -1
- package/components/preloader/preloader.umd.js +0 -1
- package/components/progressbar/progressbar.umd.js +0 -1
- package/components/pull-to-refresh/pull-to-refresh.umd.js +0 -1
- package/components/searchbar/searchbar.umd.js +0 -1
- package/components/sheet/sheet.umd.js +0 -1
- package/components/smart-select/smart-select.umd.js +0 -1
- package/components/sortable/sortable.umd.js +0 -1
- package/components/swiper/swiper.umd.js +0 -1
- package/components/tabs/tabs.umd.js +0 -1
- package/components/toggle/toggle.umd.js +0 -1
- package/components/tooltip/tooltip.umd.js +0 -1
- package/components/virtual-list/virtual-list.umd.js +0 -1
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import $ from '../../shared/dom7';
|
|
2
|
-
import { requestAnimationFrame, getTranslate } from '../../shared/utils';
|
|
3
|
-
import { getSupport } from '../../shared/get-support';
|
|
1
|
+
import $ from '../../shared/dom7.js';
|
|
4
2
|
export default function pickerColumn(colEl, updateItems) {
|
|
5
|
-
const picker = this;
|
|
6
|
-
|
|
3
|
+
const picker = this; // const app = picker.app;
|
|
4
|
+
|
|
7
5
|
const $colEl = $(colEl);
|
|
8
6
|
const colIndex = $colEl.index();
|
|
9
7
|
const col = picker.cols[colIndex];
|
|
@@ -13,17 +11,7 @@ export default function pickerColumn(colEl, updateItems) {
|
|
|
13
11
|
col.$itemsEl = col.$el.find('.picker-items');
|
|
14
12
|
col.items = col.$itemsEl.find('.picker-item');
|
|
15
13
|
let itemHeight;
|
|
16
|
-
let
|
|
17
|
-
let minTranslate;
|
|
18
|
-
let maxTranslate;
|
|
19
|
-
let animationFrameId;
|
|
20
|
-
|
|
21
|
-
function updateDuringScroll() {
|
|
22
|
-
animationFrameId = requestAnimationFrame(() => {
|
|
23
|
-
col.updateItems(undefined, undefined, 0);
|
|
24
|
-
updateDuringScroll();
|
|
25
|
-
});
|
|
26
|
-
}
|
|
14
|
+
let colHeight;
|
|
27
15
|
|
|
28
16
|
col.replaceValues = function replaceColValues(values, displayValues) {
|
|
29
17
|
col.detachEvents();
|
|
@@ -32,99 +20,63 @@ export default function pickerColumn(colEl, updateItems) {
|
|
|
32
20
|
col.$itemsEl.html(picker.renderColumn(col, true));
|
|
33
21
|
col.items = col.$itemsEl.find('.picker-item');
|
|
34
22
|
col.calcSize();
|
|
35
|
-
col.setValue(col.values[0],
|
|
23
|
+
col.setValue(col.values[0], true);
|
|
36
24
|
col.attachEvents();
|
|
37
25
|
};
|
|
38
26
|
|
|
39
27
|
col.calcSize = function calcColSize() {
|
|
40
|
-
|
|
41
|
-
col.$el.removeClass('picker-column-absolute');
|
|
42
|
-
if (!col.width) col.$el.css({
|
|
43
|
-
width: ''
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
let colWidth = 0;
|
|
48
|
-
const colHeight = col.$el[0].offsetHeight;
|
|
28
|
+
colHeight = col.$el[0].offsetHeight;
|
|
49
29
|
itemHeight = col.items[0].offsetHeight;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
maxTranslate = colHeight / 2 - itemHeight / 2;
|
|
53
|
-
|
|
54
|
-
if (col.width) {
|
|
55
|
-
colWidth = col.width;
|
|
56
|
-
if (parseInt(colWidth, 10) === colWidth) colWidth += 'px';
|
|
57
|
-
col.$el.css({
|
|
58
|
-
width: colWidth
|
|
59
|
-
});
|
|
60
|
-
}
|
|
30
|
+
const hadPadding = col.el.style.getPropertyValue('--f7-picker-scroll-padding');
|
|
31
|
+
col.el.style.setProperty('--f7-picker-scroll-padding', `${(colHeight - itemHeight) / 2}px`);
|
|
61
32
|
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
col.items.each(itemEl => {
|
|
65
|
-
const item = $(itemEl).children('span');
|
|
66
|
-
colWidth = Math.max(colWidth, item[0].offsetWidth);
|
|
67
|
-
});
|
|
68
|
-
col.$el.css({
|
|
69
|
-
width: `${colWidth + 2}px`
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
col.$el.addClass('picker-column-absolute');
|
|
33
|
+
if (!hadPadding) {
|
|
34
|
+
col.$itemsEl[0].scrollTop = 0;
|
|
74
35
|
}
|
|
75
36
|
};
|
|
76
37
|
|
|
77
|
-
col.setValue = function setColValue(newValue,
|
|
38
|
+
col.setValue = function setColValue(newValue, valueCallbacks) {
|
|
78
39
|
const newActiveIndex = col.$itemsEl.find(`.picker-item[data-picker-value="${newValue}"]`).index();
|
|
79
40
|
|
|
80
41
|
if (typeof newActiveIndex === 'undefined' || newActiveIndex === -1) {
|
|
81
42
|
return;
|
|
82
43
|
}
|
|
83
44
|
|
|
84
|
-
const
|
|
85
|
-
|
|
86
|
-
col.$itemsEl.transition(transition);
|
|
87
|
-
col.$itemsEl.transform(`translate3d(0,${newTranslate}px,0)`); // Watch items
|
|
88
|
-
|
|
89
|
-
if (picker.params.updateValuesOnMomentum && col.activeIndex && col.activeIndex !== newActiveIndex) {
|
|
90
|
-
cancelAnimationFrame(animationFrameId);
|
|
91
|
-
col.$itemsEl.transitionEnd(() => {
|
|
92
|
-
cancelAnimationFrame(animationFrameId);
|
|
93
|
-
});
|
|
94
|
-
updateDuringScroll();
|
|
95
|
-
} // Update items
|
|
96
|
-
|
|
45
|
+
const newScrollTop = newActiveIndex * itemHeight;
|
|
46
|
+
col.$itemsEl[0].scrollTop = newScrollTop; // Update items
|
|
97
47
|
|
|
98
|
-
col.updateItems(newActiveIndex,
|
|
48
|
+
col.updateItems(newActiveIndex, newScrollTop, valueCallbacks);
|
|
99
49
|
};
|
|
100
50
|
|
|
101
|
-
col.updateItems = function updateColItems(activeIndex,
|
|
102
|
-
if (typeof
|
|
51
|
+
col.updateItems = function updateColItems(activeIndex, scrollTop, valueCallbacks) {
|
|
52
|
+
if (typeof scrollTop === 'undefined') {
|
|
103
53
|
// eslint-disable-next-line
|
|
104
|
-
|
|
54
|
+
scrollTop = col.$itemsEl[0].scrollTop;
|
|
105
55
|
}
|
|
56
|
+
/* eslint-disable no-param-reassign */
|
|
106
57
|
|
|
107
|
-
if (typeof activeIndex === 'undefined') // eslint-disable-next-line
|
|
108
|
-
activeIndex = -Math.round((translate - maxTranslate) / itemHeight); // eslint-disable-next-line
|
|
109
58
|
|
|
110
|
-
if (activeIndex
|
|
59
|
+
if (typeof activeIndex === 'undefined') {
|
|
60
|
+
activeIndex = Math.round(scrollTop / itemHeight);
|
|
61
|
+
}
|
|
111
62
|
|
|
63
|
+
if (activeIndex < 0) activeIndex = 0;
|
|
112
64
|
if (activeIndex >= col.items.length) activeIndex = col.items.length - 1;
|
|
65
|
+
/* eslint-enable no-param-reassign */
|
|
66
|
+
|
|
113
67
|
const previousActiveIndex = col.activeIndex;
|
|
114
68
|
col.activeIndex = activeIndex;
|
|
115
69
|
col.$itemsEl.find('.picker-item-selected').removeClass('picker-item-selected');
|
|
116
|
-
col.items.
|
|
117
|
-
|
|
70
|
+
const selectedItem = col.items.eq(activeIndex);
|
|
71
|
+
selectedItem.addClass('picker-item-selected').children().transform(''); // Set 3D rotate effect
|
|
118
72
|
|
|
119
73
|
if (picker.params.rotateEffect) {
|
|
120
74
|
col.items.each(itemEl => {
|
|
121
75
|
const $itemEl = $(itemEl);
|
|
122
|
-
const
|
|
123
|
-
const translateOffset = maxTranslate - translate;
|
|
124
|
-
const itemOffset = itemOffsetTop - translateOffset;
|
|
76
|
+
const itemOffset = itemEl.offsetTop - (colHeight - itemHeight) / 2 - scrollTop;
|
|
125
77
|
const percentage = itemOffset / itemHeight;
|
|
126
78
|
const itemsFit = Math.ceil(col.height / itemHeight / 2) + 1;
|
|
127
|
-
let angle = -
|
|
79
|
+
let angle = -24 * percentage;
|
|
128
80
|
if (angle > 180) angle = 180;
|
|
129
81
|
if (angle < -180) angle = -180;
|
|
130
82
|
|
|
@@ -134,7 +86,7 @@ export default function pickerColumn(colEl, updateItems) {
|
|
|
134
86
|
$itemEl.removeClass('picker-item-far');
|
|
135
87
|
}
|
|
136
88
|
|
|
137
|
-
$itemEl.transform(`translate3d(0, ${-
|
|
89
|
+
$itemEl.children('span').transform(`translate3d(0, ${-percentage * itemHeight}px, -100px) rotateX(${angle}deg)`);
|
|
138
90
|
});
|
|
139
91
|
}
|
|
140
92
|
|
|
@@ -153,219 +105,31 @@ export default function pickerColumn(colEl, updateItems) {
|
|
|
153
105
|
}
|
|
154
106
|
};
|
|
155
107
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
let isMoved;
|
|
159
|
-
let touchStartY;
|
|
160
|
-
let touchCurrentY;
|
|
161
|
-
let touchStartTime;
|
|
162
|
-
let touchEndTime;
|
|
163
|
-
let startTranslate;
|
|
164
|
-
let returnTo;
|
|
165
|
-
let currentTranslate;
|
|
166
|
-
let prevTranslate;
|
|
167
|
-
let velocityTranslate;
|
|
168
|
-
|
|
169
|
-
function handleTouchStart(e) {
|
|
170
|
-
if (isMoved || isTouched) return;
|
|
171
|
-
e.preventDefault();
|
|
172
|
-
isTouched = true;
|
|
173
|
-
touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;
|
|
174
|
-
touchCurrentY = touchStartY;
|
|
175
|
-
touchStartTime = new Date().getTime();
|
|
176
|
-
allowItemClick = true;
|
|
177
|
-
startTranslate = getTranslate(col.$itemsEl[0], 'y');
|
|
178
|
-
currentTranslate = startTranslate;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
function handleTouchMove(e) {
|
|
182
|
-
if (!isTouched) return;
|
|
183
|
-
e.preventDefault();
|
|
184
|
-
allowItemClick = false;
|
|
185
|
-
touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;
|
|
186
|
-
|
|
187
|
-
if (!isMoved) {
|
|
188
|
-
// First move
|
|
189
|
-
cancelAnimationFrame(animationFrameId);
|
|
190
|
-
isMoved = true;
|
|
191
|
-
startTranslate = getTranslate(col.$itemsEl[0], 'y');
|
|
192
|
-
currentTranslate = startTranslate;
|
|
193
|
-
col.$itemsEl.transition(0);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
const diff = touchCurrentY - touchStartY;
|
|
197
|
-
currentTranslate = startTranslate + diff;
|
|
198
|
-
returnTo = undefined; // Normalize translate
|
|
199
|
-
|
|
200
|
-
if (currentTranslate < minTranslate) {
|
|
201
|
-
currentTranslate = minTranslate - (minTranslate - currentTranslate) ** 0.8;
|
|
202
|
-
returnTo = 'min';
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
if (currentTranslate > maxTranslate) {
|
|
206
|
-
currentTranslate = maxTranslate + (currentTranslate - maxTranslate) ** 0.8;
|
|
207
|
-
returnTo = 'max';
|
|
208
|
-
} // Transform wrapper
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
col.$itemsEl.transform(`translate3d(0,${currentTranslate}px,0)`); // Update items
|
|
212
|
-
|
|
213
|
-
col.updateItems(undefined, currentTranslate, 0, picker.params.updateValuesOnTouchmove); // Calc velocity
|
|
214
|
-
|
|
215
|
-
velocityTranslate = currentTranslate - prevTranslate || currentTranslate;
|
|
216
|
-
prevTranslate = currentTranslate;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
function handleTouchEnd() {
|
|
220
|
-
if (!isTouched || !isMoved) {
|
|
221
|
-
isTouched = false;
|
|
222
|
-
isMoved = false;
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
isTouched = false;
|
|
227
|
-
isMoved = false;
|
|
228
|
-
col.$itemsEl.transition('');
|
|
229
|
-
|
|
230
|
-
if (returnTo) {
|
|
231
|
-
if (returnTo === 'min') {
|
|
232
|
-
col.$itemsEl.transform(`translate3d(0,${minTranslate}px,0)`);
|
|
233
|
-
} else {
|
|
234
|
-
col.$itemsEl.transform(`translate3d(0,${maxTranslate}px,0)`);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
touchEndTime = new Date().getTime();
|
|
239
|
-
let newTranslate;
|
|
240
|
-
|
|
241
|
-
if (touchEndTime - touchStartTime > 300) {
|
|
242
|
-
newTranslate = currentTranslate;
|
|
243
|
-
} else {
|
|
244
|
-
newTranslate = currentTranslate + velocityTranslate * picker.params.momentumRatio;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
newTranslate = Math.max(Math.min(newTranslate, maxTranslate), minTranslate); // Active Index
|
|
248
|
-
|
|
249
|
-
const activeIndex = Math.round(Math.abs((newTranslate - maxTranslate) / itemHeight)); // Normalize translate
|
|
250
|
-
|
|
251
|
-
if (!picker.params.freeMode) newTranslate = -activeIndex * itemHeight + maxTranslate; // Transform wrapper
|
|
252
|
-
|
|
253
|
-
col.$itemsEl.transform(`translate3d(0,${parseInt(newTranslate, 10)}px,0)`); // Update items
|
|
254
|
-
|
|
255
|
-
col.updateItems(activeIndex, newTranslate, '', true); // Watch items
|
|
256
|
-
|
|
257
|
-
if (picker.params.updateValuesOnMomentum) {
|
|
258
|
-
updateDuringScroll();
|
|
259
|
-
col.$itemsEl.transitionEnd(() => {
|
|
260
|
-
cancelAnimationFrame(animationFrameId);
|
|
261
|
-
});
|
|
262
|
-
} // Allow click
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
setTimeout(() => {
|
|
266
|
-
allowItemClick = true;
|
|
267
|
-
}, 100);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
let mousewheelTimeout;
|
|
271
|
-
|
|
272
|
-
function handleMouseWheel(e) {
|
|
273
|
-
const {
|
|
274
|
-
deltaX,
|
|
275
|
-
deltaY
|
|
276
|
-
} = e;
|
|
277
|
-
if (Math.abs(deltaX) > Math.abs(deltaY)) return;
|
|
278
|
-
clearTimeout(mousewheelTimeout);
|
|
279
|
-
e.preventDefault();
|
|
280
|
-
cancelAnimationFrame(animationFrameId);
|
|
281
|
-
startTranslate = getTranslate(col.$itemsEl[0], 'y');
|
|
282
|
-
col.$itemsEl.transition(0);
|
|
283
|
-
currentTranslate = startTranslate - deltaY;
|
|
284
|
-
returnTo = undefined; // Normalize translate
|
|
285
|
-
|
|
286
|
-
if (currentTranslate < minTranslate) {
|
|
287
|
-
currentTranslate = minTranslate;
|
|
288
|
-
returnTo = 'min';
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
if (currentTranslate > maxTranslate) {
|
|
292
|
-
currentTranslate = maxTranslate;
|
|
293
|
-
returnTo = 'max';
|
|
294
|
-
} // Transform wrapper
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
col.$itemsEl.transform(`translate3d(0,${currentTranslate}px,0)`); // Update items
|
|
298
|
-
|
|
299
|
-
col.updateItems(undefined, currentTranslate, 0, picker.params.updateValuesOnMousewheel); // On end
|
|
300
|
-
|
|
301
|
-
mousewheelTimeout = setTimeout(() => {
|
|
302
|
-
col.$itemsEl.transition('');
|
|
303
|
-
|
|
304
|
-
if (returnTo) {
|
|
305
|
-
if (returnTo === 'min') {
|
|
306
|
-
col.$itemsEl.transform(`translate3d(0,${minTranslate}px,0)`);
|
|
307
|
-
} else {
|
|
308
|
-
col.$itemsEl.transform(`translate3d(0,${maxTranslate}px,0)`);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
touchEndTime = new Date().getTime();
|
|
313
|
-
let newTranslate = currentTranslate;
|
|
314
|
-
newTranslate = Math.max(Math.min(newTranslate, maxTranslate), minTranslate); // Active Index
|
|
315
|
-
|
|
316
|
-
const activeIndex = Math.round(Math.abs((newTranslate - maxTranslate) / itemHeight)); // Normalize translate
|
|
317
|
-
|
|
318
|
-
if (!picker.params.freeMode) newTranslate = -activeIndex * itemHeight + maxTranslate; // Transform wrapper
|
|
319
|
-
|
|
320
|
-
col.$itemsEl.transform(`translate3d(0,${parseInt(newTranslate, 10)}px,0)`); // Update items
|
|
321
|
-
|
|
322
|
-
col.updateItems(activeIndex, newTranslate, '', true);
|
|
323
|
-
}, 200);
|
|
108
|
+
function handleScroll() {
|
|
109
|
+
col.updateItems();
|
|
324
110
|
}
|
|
325
111
|
|
|
326
112
|
function handleClick() {
|
|
327
|
-
if (!allowItemClick) return;
|
|
328
|
-
cancelAnimationFrame(animationFrameId);
|
|
329
113
|
const value = $(this).attr('data-picker-value');
|
|
330
114
|
col.setValue(value);
|
|
331
115
|
}
|
|
332
116
|
|
|
333
|
-
const activeListener = getSupport().passiveListener ? {
|
|
334
|
-
passive: false,
|
|
335
|
-
capture: false
|
|
336
|
-
} : false;
|
|
337
|
-
|
|
338
117
|
col.attachEvents = function attachColEvents() {
|
|
339
|
-
col.$
|
|
340
|
-
app.on('touchmove:active', handleTouchMove);
|
|
341
|
-
app.on('touchend:passive', handleTouchEnd);
|
|
342
|
-
|
|
343
|
-
if (picker.params.mousewheel) {
|
|
344
|
-
col.$el.on('wheel', handleMouseWheel);
|
|
345
|
-
}
|
|
346
|
-
|
|
118
|
+
col.$itemsEl.on('scroll', handleScroll);
|
|
347
119
|
col.items.on('click', handleClick);
|
|
348
120
|
};
|
|
349
121
|
|
|
350
122
|
col.detachEvents = function detachColEvents() {
|
|
351
|
-
col.$el.off(app.touchEvents.start, handleTouchStart, activeListener);
|
|
352
|
-
app.off('touchmove:active', handleTouchMove);
|
|
353
|
-
app.off('touchend:passive', handleTouchEnd);
|
|
354
|
-
|
|
355
|
-
if (picker.params.mousewheel) {
|
|
356
|
-
col.$el.off('wheel', handleMouseWheel);
|
|
357
|
-
}
|
|
358
|
-
|
|
359
123
|
col.items.off('click', handleClick);
|
|
360
124
|
};
|
|
361
125
|
|
|
362
126
|
col.init = function initCol() {
|
|
363
127
|
col.calcSize();
|
|
364
|
-
col.$itemsEl.transform(`translate3d(0,${maxTranslate}px,0)`).transition(0);
|
|
365
128
|
if (colIndex === 0) col.$el.addClass('picker-column-first');
|
|
366
|
-
if (colIndex === picker.cols.length - 1) col.$el.addClass('picker-column-last');
|
|
129
|
+
if (colIndex === picker.cols.length - 1) col.$el.addClass('picker-column-last');
|
|
130
|
+
if (picker.params.freeMode) col.$el.addClass('picker-column-free-mode'); // Update items on init
|
|
367
131
|
|
|
368
|
-
if (updateItems) col.updateItems(0
|
|
132
|
+
if (updateItems) col.updateItems(0);
|
|
369
133
|
col.attachEvents();
|
|
370
134
|
};
|
|
371
135
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--f7-picker-height:260px;--f7-picker-inline-height:200px;--f7-picker-popover-height:260px;--f7-picker-popover-width:280px;--f7-picker-landscape-height:200px;--f7-picker-item-height:36px;--f7-picker-item-selected-bg-color:rgba(0, 0, 0, 0.12);--f7-picker-item-selected-text-color:#000}:root .
|
|
1
|
+
:root{--f7-picker-height:260px;--f7-picker-inline-height:200px;--f7-picker-popover-height:260px;--f7-picker-popover-width:280px;--f7-picker-landscape-height:200px;--f7-picker-item-height:36px;--f7-picker-item-selected-bg-color:rgba(0, 0, 0, 0.12);--f7-picker-item-selected-text-color:#000}:root .dark,:root.dark{--f7-picker-item-selected-bg-color:rgba(255, 255, 255, 0.1);--f7-picker-item-selected-text-color:#fff}.ios{--f7-picker-column-font-size:20px;--f7-picker-divider-text-color:#000;--f7-picker-item-text-color:rgba(0, 0, 0, 0.45)}.ios .dark,.ios.dark{--f7-picker-divider-text-color:#fff;--f7-picker-item-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-picker-column-font-size:20px;--f7-picker-divider-text-color:rgba(0, 0, 0, 0.87);--f7-picker-item-text-color:rgba(0, 0, 0, 0.54)}.md .dark,.md.dark{--f7-picker-item-text-color:rgba(255, 255, 255, 0.54);--f7-picker-divider-text-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-picker-column-font-size:20px;--f7-picker-item-text-color:#888;--f7-picker-divider-text-color:#000}.aurora .dark,.aurora.dark{--f7-picker-divider-text-color:#fff}.picker{width:100%;height:var(--f7-picker-height)}.picker.picker-inline{height:var(--f7-picker-inline-height)}.popover .picker{height:var(--f7-picker-popover-height)}@media (orientation:landscape) and (max-height:415px){.picker:not(.picker-inline){height:var(--f7-picker-landscape-height)}}.picker.sheet-modal{background:var(--f7-picker-sheet-bg-color,var(--f7-sheet-bg-color))}.picker-popover{width:var(--f7-picker-popover-width)}.picker-popover .toolbar{background:0 0;border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.picker-popover .toolbar:before{display:none!important}.picker-popover .toolbar+.picker-columns{height:calc(100% - var(--f7-toolbar-height))}.picker-columns{display:flex;overflow:hidden;justify-content:center;padding:0;text-align:right;height:100%;position:relative;-webkit-mask-box-image:linear-gradient(to top,transparent,transparent 5%,white 20%,white 80%,transparent 95%,transparent);font-size:var(--f7-picker-column-font-size)}.picker-column{position:relative;max-height:100%}.picker-column.picker-column-first:before,.picker-column.picker-column-last:after{height:100%;width:100vw;position:absolute;content:'';top:0}.picker-column.picker-column-first:before{left:100%}.picker-column.picker-column-last:after{right:100%}.picker-column.picker-column-left{text-align:left}.picker-column.picker-column-center{text-align:center}.picker-column.picker-column-right{text-align:right}.picker-column.picker-column-divider{display:flex;align-items:center;color:var(--f7-picker-divider-text-color)}.picker-items{overflow:auto;scrollbar-width:none;scroll-snap-type:y mandatory;height:100%;box-sizing:border-box;padding:var(--f7-picker-scroll-padding,0px) 0px}.picker-items::-webkit-scrollbar{display:none;opacity:0}.picker-item{height:var(--f7-picker-item-height);line-height:var(--f7-picker-item-height);white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;left:0;top:0;width:100%;box-sizing:border-box;color:var(--f7-picker-item-text-color);cursor:pointer;scroll-snap-align:center}.picker-item span{padding:0 10px}.picker-item.picker-item-far{pointer-events:none}.picker-item.picker-item-selected{color:var(--f7-picker-item-selected-text-color);transform:translate3d(0,0,0) rotateX(0deg)}.picker-column-free-mode .picker-item{scroll-snap-align:none}.picker-center-highlight{height:var(--f7-picker-item-height);box-sizing:border-box;position:absolute;left:16px;right:16px;top:50%;margin-top:calc(-1 * var(--f7-picker-item-height)/ 2);pointer-events:none;background-color:var(--f7-picker-item-selected-bg-color);border-radius:8px}.popover .picker-center-highlight{left:8px;right:8px}.picker-3d .picker-columns{overflow:hidden}.picker-3d .picker-column,.picker-3d .picker-item,.picker-3d .picker-items{transform-style:preserve-3d}.picker-3d .picker-column{overflow:visible}.picker-3d .picker-item{perspective:1200px;overflow:visible}.picker-3d .picker-item>span{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;transform-style:preserve-3d;position:relative;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;max-width:100%;transform-origin:center center -100px}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--f7-picker-height:260px;--f7-picker-inline-height:200px;--f7-picker-popover-height:260px;--f7-picker-popover-width:280px;--f7-picker-landscape-height:200px;--f7-picker-item-height:36px;--f7-picker-item-selected-bg-color:rgba(0, 0, 0, 0.12);--f7-picker-item-selected-text-color:#000}:root .
|
|
1
|
+
:root{--f7-picker-height:260px;--f7-picker-inline-height:200px;--f7-picker-popover-height:260px;--f7-picker-popover-width:280px;--f7-picker-landscape-height:200px;--f7-picker-item-height:36px;--f7-picker-item-selected-bg-color:rgba(0, 0, 0, 0.12);--f7-picker-item-selected-text-color:#000}:root .dark,:root.dark{--f7-picker-item-selected-bg-color:rgba(255, 255, 255, 0.1);--f7-picker-item-selected-text-color:#fff}.ios{--f7-picker-column-font-size:20px;--f7-picker-divider-text-color:#000;--f7-picker-item-text-color:rgba(0, 0, 0, 0.45)}.ios .dark,.ios.dark{--f7-picker-divider-text-color:#fff;--f7-picker-item-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-picker-column-font-size:20px;--f7-picker-divider-text-color:rgba(0, 0, 0, 0.87);--f7-picker-item-text-color:rgba(0, 0, 0, 0.54)}.md .dark,.md.dark{--f7-picker-item-text-color:rgba(255, 255, 255, 0.54);--f7-picker-divider-text-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-picker-column-font-size:20px;--f7-picker-item-text-color:#888;--f7-picker-divider-text-color:#000}.aurora .dark,.aurora.dark{--f7-picker-divider-text-color:#fff}.picker{width:100%;height:var(--f7-picker-height)}.picker.picker-inline{height:var(--f7-picker-inline-height)}.popover .picker{height:var(--f7-picker-popover-height)}@media (orientation:landscape) and (max-height:415px){.picker:not(.picker-inline){height:var(--f7-picker-landscape-height)}}.picker.sheet-modal{background:var(--f7-picker-sheet-bg-color,var(--f7-sheet-bg-color))}.picker-popover{width:var(--f7-picker-popover-width)}.picker-popover .toolbar{background:0 0;border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.picker-popover .toolbar:before{display:none!important}.picker-popover .toolbar+.picker-columns{height:calc(100% - var(--f7-toolbar-height))}.picker-columns{display:flex;overflow:hidden;justify-content:center;padding:0;text-align:right;height:100%;position:relative;-webkit-mask-box-image:linear-gradient(to top,transparent,transparent 5%,white 20%,white 80%,transparent 95%,transparent);font-size:var(--f7-picker-column-font-size)}.picker-column{position:relative;max-height:100%}.picker-column.picker-column-first:before,.picker-column.picker-column-last:after{height:100%;width:100vw;position:absolute;content:'';top:0}.picker-column.picker-column-first:before{right:100%}.picker-column.picker-column-last:after{left:100%}.picker-column.picker-column-left{text-align:left}.picker-column.picker-column-center{text-align:center}.picker-column.picker-column-right{text-align:right}.picker-column.picker-column-divider{display:flex;align-items:center;color:var(--f7-picker-divider-text-color)}.picker-items{overflow:auto;scrollbar-width:none;scroll-snap-type:y mandatory;height:100%;box-sizing:border-box;padding:var(--f7-picker-scroll-padding,0px) 0px}.picker-items::-webkit-scrollbar{display:none;opacity:0}.picker-item{height:var(--f7-picker-item-height);line-height:var(--f7-picker-item-height);white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;left:0;top:0;width:100%;box-sizing:border-box;color:var(--f7-picker-item-text-color);cursor:pointer;scroll-snap-align:center}.picker-item span{padding:0 10px}.picker-item.picker-item-far{pointer-events:none}.picker-item.picker-item-selected{color:var(--f7-picker-item-selected-text-color);transform:translate3d(0,0,0) rotateX(0deg)}.picker-column-free-mode .picker-item{scroll-snap-align:none}.picker-center-highlight{height:var(--f7-picker-item-height);box-sizing:border-box;position:absolute;left:16px;right:16px;top:50%;margin-top:calc(-1 * var(--f7-picker-item-height)/ 2);pointer-events:none;background-color:var(--f7-picker-item-selected-bg-color);border-radius:8px}.popover .picker-center-highlight{left:8px;right:8px}.picker-3d .picker-columns{overflow:hidden}.picker-3d .picker-column,.picker-3d .picker-item,.picker-3d .picker-items{transform-style:preserve-3d}.picker-3d .picker-column{overflow:visible}.picker-3d .picker-item{perspective:1200px;overflow:visible}.picker-3d .picker-item>span{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;transform-style:preserve-3d;position:relative;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;max-width:100%;transform-origin:center center -100px}
|
|
@@ -32,9 +32,8 @@ export namespace Picker {
|
|
|
32
32
|
view: View.View;
|
|
33
33
|
/** Object with initialization parameters */
|
|
34
34
|
params: Parameters;
|
|
35
|
-
|
|
36
35
|
/** Set new picker value. values is array where each item represents value for each column. duration - transition duration in ms */
|
|
37
|
-
setValue(values: unknown[]
|
|
36
|
+
setValue(values: unknown[]): void;
|
|
38
37
|
/** Returns current picker value */
|
|
39
38
|
getValue(): unknown;
|
|
40
39
|
/** Open Picker */
|
|
@@ -60,7 +59,7 @@ export namespace Picker {
|
|
|
60
59
|
activeIndex: number;
|
|
61
60
|
|
|
62
61
|
/** Set new value for current column. value is a new value, duration - transition duration in ms */
|
|
63
|
-
setValue(value: unknown
|
|
62
|
+
setValue(value: unknown): void;
|
|
64
63
|
/** Replace column values and displayValues with new ones */
|
|
65
64
|
replaceValues(values: unknown[], displayValues: unknown[]): void;
|
|
66
65
|
}
|
|
@@ -87,16 +86,6 @@ export namespace Picker {
|
|
|
87
86
|
interface Parameters {
|
|
88
87
|
/** Enables 3D rotate effect. (default false) */
|
|
89
88
|
rotateEffect?: boolean;
|
|
90
|
-
/** Larger values produces more momentum when you release picker after fast touch and move. (default 7) */
|
|
91
|
-
momentumRatio?: number;
|
|
92
|
-
/** Updates picker and input values during momentum. (default false) */
|
|
93
|
-
updateValuesOnMomentum?: boolean;
|
|
94
|
-
/** Updates picker and input values during touch move. (default true) */
|
|
95
|
-
updateValuesOnTouchmove?: boolean;
|
|
96
|
-
/** Updates picker and input values during mousewheel scrolling. (default true) */
|
|
97
|
-
updateValuesOnMousewheel?: boolean;
|
|
98
|
-
/** Allow to scroll through picker with mousewheel (default true) */
|
|
99
|
-
mousewheel?: boolean;
|
|
100
89
|
/** Disables snapping on values. (default false) */
|
|
101
90
|
freeMode?: boolean;
|
|
102
91
|
/** Array with initial values. Each array item represents value of related column. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import $ from '../../shared/dom7';
|
|
2
|
-
import ConstructorMethods from '../../shared/constructor-methods';
|
|
3
|
-
import Picker from './picker-class';
|
|
1
|
+
import $ from '../../shared/dom7.js';
|
|
2
|
+
import ConstructorMethods from '../../shared/constructor-methods.js';
|
|
3
|
+
import Picker from './picker-class.js';
|
|
4
4
|
export default {
|
|
5
5
|
name: 'picker',
|
|
6
6
|
static: {
|
|
@@ -16,7 +16,11 @@ export default {
|
|
|
16
16
|
domProp: 'f7Picker'
|
|
17
17
|
});
|
|
18
18
|
|
|
19
|
-
app.picker.close = function close(el
|
|
19
|
+
app.picker.close = function close(el) {
|
|
20
|
+
if (el === void 0) {
|
|
21
|
+
el = '.picker';
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
const $el = $(el);
|
|
21
25
|
if ($el.length === 0) return;
|
|
22
26
|
const picker = $el[0].f7Picker;
|
|
@@ -28,12 +32,7 @@ export default {
|
|
|
28
32
|
params: {
|
|
29
33
|
picker: {
|
|
30
34
|
// Picker settings
|
|
31
|
-
updateValuesOnMomentum: false,
|
|
32
|
-
updateValuesOnTouchmove: true,
|
|
33
|
-
updateValuesOnMousewheel: true,
|
|
34
|
-
mousewheel: true,
|
|
35
35
|
rotateEffect: false,
|
|
36
|
-
momentumRatio: 7,
|
|
37
36
|
freeMode: false,
|
|
38
37
|
cols: [],
|
|
39
38
|
// Common opener settings
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var l=e.$,s=e.utils,i=e.getDevice,n=(e.getSupport,e.Class),o=(e.Modal,e.ConstructorMethods),r=(e.ModalMethods,s.extend),a=s.nextTick,c=s.deleteProps;function p(e,t){const s=this,i=l(e),n=i.index(),o=s.cols[n];if(o.divider)return;let r,a;function c(){o.updateItems()}function p(){const e=l(this).attr("data-picker-value");o.setValue(e)}o.$el=i,o.el=i[0],o.$itemsEl=o.$el.find(".picker-items"),o.items=o.$itemsEl.find(".picker-item"),o.replaceValues=function(e,t){o.detachEvents(),o.values=e,o.displayValues=t,o.$itemsEl.html(s.renderColumn(o,!0)),o.items=o.$itemsEl.find(".picker-item"),o.calcSize(),o.setValue(o.values[0],!0),o.attachEvents()},o.calcSize=function(){a=o.$el[0].offsetHeight,r=o.items[0].offsetHeight;const e=o.el.style.getPropertyValue("--f7-picker-scroll-padding");o.el.style.setProperty("--f7-picker-scroll-padding",(a-r)/2+"px"),e||(o.$itemsEl[0].scrollTop=0)},o.setValue=function(e,t){const l=o.$itemsEl.find(`.picker-item[data-picker-value="${e}"]`).index();if(void 0===l||-1===l)return;const s=l*r;o.$itemsEl[0].scrollTop=s,o.updateItems(l,s,t)},o.updateItems=function(e,t,i){void 0===t&&(t=o.$itemsEl[0].scrollTop),void 0===e&&(e=Math.round(t/r)),e<0&&(e=0),e>=o.items.length&&(e=o.items.length-1);const n=o.activeIndex;o.activeIndex=e,o.$itemsEl.find(".picker-item-selected").removeClass("picker-item-selected");const c=o.items.eq(e);c.addClass("picker-item-selected").children().transform(""),s.params.rotateEffect&&o.items.each((e=>{const s=l(e),i=(e.offsetTop-(a-r)/2-t)/r,n=Math.ceil(o.height/r/2)+1;let c=-24*i;c>180&&(c=180),c<-180&&(c=-180),Math.abs(i)>n?s.addClass("picker-item-far"):s.removeClass("picker-item-far"),s.children("span").transform(`translate3d(0, ${-i*r}px, -100px) rotateX(${c}deg)`)})),(i||void 0===i)&&(o.value=c.attr("data-picker-value"),o.displayValue=o.displayValues?o.displayValues[e]:o.value,n!==e&&(o.onChange&&o.onChange(s,o.value,o.displayValue),s.updateValue()))},o.attachEvents=function(){o.$itemsEl.on("scroll",c),o.items.on("click",p)},o.detachEvents=function(){o.items.off("click",p)},o.init=function(){o.calcSize(),0===n&&o.$el.addClass("picker-column-first"),n===s.cols.length-1&&o.$el.addClass("picker-column-last"),s.params.freeMode&&o.$el.addClass("picker-column-free-mode"),t&&o.updateItems(0),o.attachEvents()},o.destroy=function(){o.detachEvents()},o.init()}class d extends n{constructor(e,t){void 0===t&&(t={}),super(t,[e]);const s=this,n=i(),o=getWindow();let a,c;if(s.params=r({},e.params.picker,t),s.params.containerEl&&(a=l(s.params.containerEl),0===a.length))return s;s.params.inputEl&&(c=l(s.params.inputEl));let p=s.params.scrollToInput?c:void 0;if(s.params.scrollToEl){const e=l(s.params.scrollToEl);e.length>0&&(p=e)}function d(){s.resizeCols()}function u(){s.open()}function m(e){e.preventDefault()}r(s,{app:e,$containerEl:a,containerEl:a&&a[0],inline:a&&a.length>0,needsOriginFix:n.ios||o.navigator.userAgent.toLowerCase().indexOf("safari")>=0&&o.navigator.userAgent.toLowerCase().indexOf("chrome")<0&&!n.android,cols:[],$inputEl:c,inputEl:c&&c[0],$scrollToEl:p,initialized:!1,opened:!1,url:s.params.url});let v=null;function h(e){v=e.target}function f(e){if(s.destroyed||!s.params)return;const t=l(e.target);s.isPopover()||s.opened&&!s.closing&&(t.closest('[class*="backdrop"]').length||(c&&c.length>0?v===e.target&&t[0]!==c[0]&&0===t.closest(".sheet-modal").length&&s.close():0===l(e.target).closest(".sheet-modal").length&&s.close()))}return r(s,{attachResizeEvent(){e.on("resize",d)},detachResizeEvent(){e.off("resize",d)},attachInputEvents(){s.$inputEl.on("click",u),s.params.inputReadOnly&&(s.$inputEl.on("focus mousedown",m),s.$inputEl[0]&&(s.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents(){s.$inputEl.off("click",u),s.params.inputReadOnly&&(s.$inputEl.off("focus mousedown",m),s.$inputEl[0]&&delete s.$inputEl[0].f7ValidateReadonly)},attachHtmlEvents(){e.on("click",f),e.on("touchstart",h)},detachHtmlEvents(){e.off("click",f),e.off("touchstart",h)}}),s.init(),s}get view(){const{app:e,params:t,$inputEl:l}=this;let s;return t.view?s=t.view:l&&(s=l.parents(".view").length&&l.parents(".view")[0].f7View),s||(s=e.views.main),s}initInput(){const e=this;e.$inputEl&&e.params.inputReadOnly&&e.$inputEl.prop("readOnly",!0)}resizeCols(){const e=this;if(e.opened)for(let t=0;t<e.cols.length;t+=1)e.cols[t].divider||(e.cols[t].calcSize(),e.cols[t].setValue(e.cols[t].value,!1))}isPopover(){const e=this,{app:t,modal:l,params:s}=e,n=i();if("sheet"===s.openIn)return!1;if(l&&"popover"!==l.type)return!1;if(!e.inline&&e.inputEl){if("popover"===s.openIn)return!0;if(n.ios)return!!n.ipad;if(t.width>=768)return!0;if(n.desktop&&"aurora"===t.theme)return!0}return!1}formatValue(){const e=this,{value:t,displayValue:l}=e;return e.params.formatValue?e.params.formatValue.call(e,t,l):t.join(" ")}setValue(e){const t=this;let l=0;if(0===t.cols.length)return t.value=e,void t.updateValue(e);for(let s=0;s<t.cols.length;s+=1)t.cols[s]&&!t.cols[s].divider&&(t.cols[s].setValue(e[l]),l+=1)}getValue(){return this.value}updateValue(e){const t=this,l=e||[],s=[];let i;if(0===t.cols.length){const e=t.params.cols.filter((e=>!e.divider));for(let t=0;t<e.length;t+=1)i=e[t],void 0!==i.displayValues&&void 0!==i.values&&-1!==i.values.indexOf(l[t])?s.push(i.displayValues[i.values.indexOf(l[t])]):s.push(l[t])}else for(let e=0;e<t.cols.length;e+=1)t.cols[e].divider||(l.push(t.cols[e].value),s.push(t.cols[e].displayValue));l.indexOf(void 0)>=0||(t.value=l,t.displayValue=s,t.emit("local::change pickerChange",t,t.value,t.displayValue),t.inputEl&&(t.$inputEl.val(t.formatValue()),t.$inputEl.trigger("change")))}initColumn(e,t){p.call(this,e,t)}destroyColumn(e){const t=this,s=l(e).index();t.cols[s]&&t.cols[s].destroy&&t.cols[s].destroy()}renderToolbar(){const e=this;return e.params.renderToolbar?e.params.renderToolbar.call(e,e):$jsx("div",{class:"toolbar toolbar-top no-shadow"},$jsx("div",{class:"toolbar-inner"},$jsx("div",{class:"left"}),$jsx("div",{class:"right"},$jsx("a",{class:"link sheet-close popover-close"},e.params.toolbarCloseText))))}renderColumn(e,t){const l=`picker-column ${e.textAlign?`picker-column-${e.textAlign}`:""} ${e.cssClass||""}`;let s,i;return e.divider?s=`\n <div class="${l} picker-column-divider">${e.content}</div>\n `:(i=e.values.map(((t,l)=>`\n <div class="picker-item" data-picker-value="${t}">\n <span>${e.displayValues?e.displayValues[l]:t}</span>\n </div>\n `)).join(""),s=`\n <div class="${l}">\n <div class="picker-items">${i}</div>\n </div>\n `),t?i.trim():s.trim()}renderInline(){const e=this,{rotateEffect:t,cssClass:l,toolbar:s}=e.params;return $jsx("div",{class:`picker picker-inline ${t?"picker-3d":""} ${l||""}`},s&&e.renderToolbar(),$jsx("div",{class:"picker-columns"},e.cols.map((t=>e.renderColumn(t))),$jsx("div",{class:"picker-center-highlight"})))}renderSheet(){const e=this,{rotateEffect:t,cssClass:l,toolbar:s}=e.params;return $jsx("div",{class:`sheet-modal picker picker-sheet ${t?"picker-3d":""} ${l||""}`},s&&e.renderToolbar(),$jsx("div",{class:"sheet-modal-inner picker-columns"},e.cols.map((t=>e.renderColumn(t))),$jsx("div",{class:"picker-center-highlight"})))}renderPopover(){const e=this,{rotateEffect:t,cssClass:l,toolbar:s}=e.params;return $jsx("div",{class:"popover picker-popover"},$jsx("div",{class:"popover-inner"},$jsx("div",{class:`picker ${t?"picker-3d":""} ${l||""}`},s&&e.renderToolbar(),$jsx("div",{class:"picker-columns"},e.cols.map((t=>e.renderColumn(t))),$jsx("div",{class:"picker-center-highlight"})))))}render(){const e=this;return e.params.render?e.params.render.call(e):e.inline?e.renderInline():e.isPopover()?e.renderPopover():e.renderSheet()}onOpen(){const e=this,{initialized:t,$el:l,app:s,$inputEl:i,inline:n,value:o,params:r}=e;e.opened=!0,e.closing=!1,e.opening=!0,e.attachResizeEvent(),l.find(".picker-column").each((l=>{let s=!0;(!t&&r.value||t&&o)&&(s=!1),e.initColumn(l,s)})),t?o&&e.setValue(o):o?e.setValue(o):r.value&&e.setValue(r.value),!n&&i&&i.length&&"md"===s.theme&&i.trigger("focus"),e.initialized=!0,l&&l.trigger("picker:open"),i&&i.trigger("picker:open"),e.emit("local::open pickerOpen",e)}onOpened(){const e=this;e.opening=!1,e.$el&&e.$el.trigger("picker:opened"),e.$inputEl&&e.$inputEl.trigger("picker:opened"),e.emit("local::opened pickerOpened",e)}onClose(){const e=this,t=e.app;if(e.opening=!1,e.closing=!0,e.detachResizeEvent(),e.cols.forEach((e=>{e.destroy&&e.destroy()})),e.$inputEl)if("md"===t.theme)e.$inputEl.trigger("blur");else{const l=e.$inputEl.attr("validate"),s=e.$inputEl.attr("required");l&&s&&t.input.validate(e.$inputEl)}e.$el&&e.$el.trigger("picker:close"),e.$inputEl&&e.$inputEl.trigger("picker:close"),e.emit("local::close pickerClose",e)}onClosed(){const e=this;e.opened=!1,e.closing=!1,e.inline||a((()=>{e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.$el&&e.$el.trigger("picker:closed"),e.$inputEl&&e.$inputEl.trigger("picker:closed"),e.emit("local::closed pickerClosed",e)}open(){const e=this,{app:t,opened:s,inline:i,$inputEl:n,$scrollToEl:o,params:r}=e;if(s)return;if(0===e.cols.length&&r.cols.length&&r.cols.forEach((t=>{e.cols.push(t)})),i)return e.$el=l(e.render()),e.$el[0].f7Picker=e,e.$containerEl.append(e.$el),e.onOpen(),void e.onOpened();const a=e.isPopover(),c=a?"popover":"sheet",p={targetEl:n,scrollToEl:o,content:e.render(),backdrop:void 0!==r.backdrop?r.backdrop:a,on:{open(){const t=this;e.modal=t,e.$el=a?t.$el.find(".picker"):t.$el,e.$el[0].f7Picker=e,e.onOpen()},opened(){e.onOpened()},close(){e.onClose()},closed(){e.onClosed()}}};"sheet"===c&&(p.push=r.sheetPush,p.swipeToClose=r.sheetSwipeToClose),r.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,[c]:p}}):(e.modal=t[c].create(p),e.modal.open())}close(){const e=this,{opened:t,inline:l}=e;if(t)return l?(e.onClose(),void e.onClosed()):void(e.params.routableModals&&e.view?e.view.router.back():e.modal.close())}init(){const e=this;if(e.initInput(),e.inline)return e.open(),void e.emit("local::init pickerInit",e);!e.initialized&&e.params.value&&e.setValue(e.params.value),e.$inputEl&&e.attachInputEvents(),e.params.closeByOutsideClick&&e.attachHtmlEvents(),e.emit("local::init pickerInit",e)}destroy(){const e=this;if(e.destroyed)return;const{$el:t}=e;e.emit("local::beforeDestroy pickerBeforeDestroy",e),t&&t.trigger("picker:beforedestroy"),e.close(),e.$inputEl&&e.detachInputEvents(),e.params.closeByOutsideClick&&e.detachHtmlEvents(),t&&t.length&&delete e.$el[0].f7Picker,c(e),e.destroyed=!0}}var u={name:"picker",static:{Picker:d},create(){const e=this;e.picker=o({defaultSelector:".picker",constructor:d,app:e,domProp:"f7Picker"}),e.picker.close=function(e){void 0===e&&(e=".picker");const t=l(e);if(0===t.length)return;const s=t[0].f7Picker;!s||s&&!s.opened||s.close()}},params:{picker:{rotateEffect:!1,freeMode:!1,cols:[],containerEl:null,openIn:"auto",sheetPush:!1,sheetSwipeToClose:void 0,backdrop:void 0,formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,scrollToEl:void 0,toolbar:!0,toolbarCloseText:"Done",cssClass:null,routableModals:!1,view:null,url:"select/",renderToolbar:null,render:null}}};if(t){if(e.prototype.modules&&e.prototype.modules[u.name])return;e.use(u),e.instance&&(e.instance.useModuleParams(u,e.instance.params),e.instance.useModule(u))}return u}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))
|
|
@@ -92,8 +92,16 @@
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
.picker-items {
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
overflow: auto;
|
|
96
|
+
scrollbar-width: none;
|
|
97
|
+
scroll-snap-type: y mandatory;
|
|
98
|
+
height: 100%;
|
|
99
|
+
box-sizing: border-box;
|
|
100
|
+
padding: var(--f7-picker-scroll-padding, 0px) 0px;
|
|
101
|
+
&::-webkit-scrollbar {
|
|
102
|
+
display: none;
|
|
103
|
+
opacity: 0;
|
|
104
|
+
}
|
|
97
105
|
}
|
|
98
106
|
.picker-item {
|
|
99
107
|
height: var(--f7-picker-item-height);
|
|
@@ -106,15 +114,12 @@
|
|
|
106
114
|
top: 0;
|
|
107
115
|
width: 100%;
|
|
108
116
|
box-sizing: border-box;
|
|
109
|
-
transition: 300ms;
|
|
110
117
|
color: var(--f7-picker-item-text-color);
|
|
111
118
|
cursor: pointer;
|
|
119
|
+
scroll-snap-align: center;
|
|
112
120
|
span {
|
|
113
121
|
padding: 0 10px;
|
|
114
122
|
}
|
|
115
|
-
.picker-column-absolute & {
|
|
116
|
-
position: absolute;
|
|
117
|
-
}
|
|
118
123
|
&.picker-item-far {
|
|
119
124
|
pointer-events: none;
|
|
120
125
|
}
|
|
@@ -122,6 +127,9 @@
|
|
|
122
127
|
color: var(--f7-picker-item-selected-text-color);
|
|
123
128
|
transform: translate3d(0, 0, 0) rotateX(0deg);
|
|
124
129
|
}
|
|
130
|
+
.picker-column-free-mode & {
|
|
131
|
+
scroll-snap-align: none;
|
|
132
|
+
}
|
|
125
133
|
}
|
|
126
134
|
.picker-center-highlight {
|
|
127
135
|
height: var(--f7-picker-item-height);
|
|
@@ -142,7 +150,6 @@
|
|
|
142
150
|
.picker-3d {
|
|
143
151
|
.picker-columns {
|
|
144
152
|
overflow: hidden;
|
|
145
|
-
perspective: 1200px;
|
|
146
153
|
}
|
|
147
154
|
.picker-column,
|
|
148
155
|
.picker-items,
|
|
@@ -153,9 +160,20 @@
|
|
|
153
160
|
overflow: visible;
|
|
154
161
|
}
|
|
155
162
|
.picker-item {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
163
|
+
perspective: 1200px;
|
|
164
|
+
overflow: visible;
|
|
165
|
+
|
|
166
|
+
> span {
|
|
167
|
+
backface-visibility: hidden;
|
|
168
|
+
display: block;
|
|
169
|
+
transform-style: preserve-3d;
|
|
170
|
+
position: relative;
|
|
171
|
+
overflow: hidden;
|
|
172
|
+
text-overflow: ellipsis;
|
|
173
|
+
box-sizing: border-box;
|
|
174
|
+
max-width: 100%;
|
|
175
|
+
transform-origin: center center -100px;
|
|
176
|
+
}
|
|
159
177
|
}
|
|
160
178
|
}
|
|
161
179
|
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import $ from '../../shared/dom7';
|
|
2
|
-
import { extend, deleteProps } from '../../shared/utils';
|
|
3
|
-
import Framework7Class from '../../shared/class';
|
|
1
|
+
import $ from '../../shared/dom7.js';
|
|
2
|
+
import { extend, deleteProps } from '../../shared/utils.js';
|
|
3
|
+
import Framework7Class from '../../shared/class.js';
|
|
4
4
|
/** @jsx $jsx */
|
|
5
5
|
|
|
6
|
-
import $jsx from '../../shared/$jsx';
|
|
6
|
+
import $jsx from '../../shared/$jsx.js';
|
|
7
7
|
|
|
8
8
|
class PieChart extends Framework7Class {
|
|
9
|
-
constructor(app, params
|
|
9
|
+
constructor(app, params) {
|
|
10
|
+
if (params === void 0) {
|
|
11
|
+
params = {};
|
|
12
|
+
}
|
|
13
|
+
|
|
10
14
|
super(params, [app]);
|
|
11
15
|
const self = this;
|
|
12
16
|
const defaults = extend({}, app.params.pieChart); // Extend defaults with modules params
|
|
@@ -61,11 +65,12 @@ class PieChart extends Framework7Class {
|
|
|
61
65
|
return [x, y];
|
|
62
66
|
}
|
|
63
67
|
|
|
64
|
-
datasets.forEach(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
datasets.forEach(_ref => {
|
|
69
|
+
let {
|
|
70
|
+
value,
|
|
71
|
+
label,
|
|
72
|
+
color
|
|
73
|
+
} = _ref;
|
|
69
74
|
const percentage = value / this.getSummValue();
|
|
70
75
|
const [startX, startY] = getCoordinatesForPercentage(cumulativePercentage);
|
|
71
76
|
cumulativePercentage += percentage;
|
|
@@ -175,7 +180,11 @@ class PieChart extends Framework7Class {
|
|
|
175
180
|
})));
|
|
176
181
|
}
|
|
177
182
|
|
|
178
|
-
update(newParams
|
|
183
|
+
update(newParams) {
|
|
184
|
+
if (newParams === void 0) {
|
|
185
|
+
newParams = {};
|
|
186
|
+
}
|
|
187
|
+
|
|
179
188
|
const self = this;
|
|
180
189
|
const {
|
|
181
190
|
params
|