├── .editorconfig
├── .gitattributes
├── .gitignore
├── .jshintrc
├── .travis.yml
├── README.md
├── app
├── index.js
└── templates
│ ├── .npmignore
│ ├── README.md
│ ├── _package.json
│ ├── framework7
│ ├── .editorconfig
│ ├── .eslintignore
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── .npmignore
│ ├── .travis.yml
│ ├── BACKERS.md
│ ├── CHANGELOG.md
│ ├── CONTRIBUTING.md
│ ├── LICENSE
│ ├── README.md
│ ├── dist
│ │ ├── components
│ │ │ ├── accordion
│ │ │ │ ├── accordion-ios.less
│ │ │ │ ├── accordion-md.less
│ │ │ │ ├── accordion.js
│ │ │ │ └── accordion.less
│ │ │ ├── actions
│ │ │ │ ├── actions-class.js
│ │ │ │ ├── actions-ios.less
│ │ │ │ ├── actions-md.less
│ │ │ │ ├── actions.js
│ │ │ │ └── actions.less
│ │ │ ├── autocomplete
│ │ │ │ ├── autocomplete-class.js
│ │ │ │ ├── autocomplete-ios.less
│ │ │ │ ├── autocomplete-md.less
│ │ │ │ ├── autocomplete.js
│ │ │ │ └── autocomplete.less
│ │ │ ├── badge
│ │ │ │ ├── badge-ios.less
│ │ │ │ ├── badge-md.less
│ │ │ │ ├── badge.js
│ │ │ │ └── badge.less
│ │ │ ├── block
│ │ │ │ ├── block-ios.less
│ │ │ │ ├── block-md.less
│ │ │ │ ├── block.js
│ │ │ │ └── block.less
│ │ │ ├── button
│ │ │ │ ├── button-ios.less
│ │ │ │ ├── button-md.less
│ │ │ │ ├── button.js
│ │ │ │ └── button.less
│ │ │ ├── calendar
│ │ │ │ ├── calendar-class.js
│ │ │ │ ├── calendar-ios.less
│ │ │ │ ├── calendar-md.less
│ │ │ │ ├── calendar.js
│ │ │ │ └── calendar.less
│ │ │ ├── card
│ │ │ │ ├── card-ios.less
│ │ │ │ ├── card-md.less
│ │ │ │ ├── card.js
│ │ │ │ └── card.less
│ │ │ ├── checkbox
│ │ │ │ ├── checkbox-ios.less
│ │ │ │ ├── checkbox-md.less
│ │ │ │ ├── checkbox.js
│ │ │ │ └── checkbox.less
│ │ │ ├── chip
│ │ │ │ ├── chip-ios.less
│ │ │ │ ├── chip-md.less
│ │ │ │ ├── chip.js
│ │ │ │ └── chip.less
│ │ │ ├── contacts-list
│ │ │ │ ├── contact-list.js
│ │ │ │ ├── contacts-list-ios.less
│ │ │ │ ├── contacts-list-md.less
│ │ │ │ └── contacts-list.less
│ │ │ ├── core
│ │ │ │ ├── core-class.js
│ │ │ │ ├── core-ios.less
│ │ │ │ ├── core-md.less
│ │ │ │ └── core.less
│ │ │ ├── data-table
│ │ │ │ ├── data-table-class.js
│ │ │ │ ├── data-table-ios.less
│ │ │ │ ├── data-table-md.less
│ │ │ │ ├── data-table.js
│ │ │ │ └── data-table.less
│ │ │ ├── dialog
│ │ │ │ ├── dialog-class.js
│ │ │ │ ├── dialog-ios.less
│ │ │ │ ├── dialog-md.less
│ │ │ │ ├── dialog.js
│ │ │ │ └── dialog.less
│ │ │ ├── fab
│ │ │ │ ├── fab-ios.less
│ │ │ │ ├── fab-md.less
│ │ │ │ ├── fab.js
│ │ │ │ └── fab.less
│ │ │ ├── form
│ │ │ │ └── form.js
│ │ │ ├── grid
│ │ │ │ ├── grid-ios.less
│ │ │ │ ├── grid-md.less
│ │ │ │ ├── grid.js
│ │ │ │ └── grid.less
│ │ │ ├── icon
│ │ │ │ ├── icon-ios.less
│ │ │ │ ├── icon-md.less
│ │ │ │ ├── icon.js
│ │ │ │ └── icon.less
│ │ │ ├── infinite-scroll
│ │ │ │ ├── infinite-scroll-ios.less
│ │ │ │ ├── infinite-scroll-md.less
│ │ │ │ ├── infinite-scroll.js
│ │ │ │ └── infinite-scroll.less
│ │ │ ├── input
│ │ │ │ ├── input-ios.less
│ │ │ │ ├── input-md.less
│ │ │ │ ├── input.js
│ │ │ │ └── input.less
│ │ │ ├── lazy
│ │ │ │ ├── lazy-ios.less
│ │ │ │ ├── lazy-md.less
│ │ │ │ ├── lazy.js
│ │ │ │ └── lazy.less
│ │ │ ├── link
│ │ │ │ ├── link-ios.less
│ │ │ │ ├── link-md.less
│ │ │ │ ├── link.js
│ │ │ │ └── link.less
│ │ │ ├── list-index
│ │ │ │ ├── list-index-class.js
│ │ │ │ ├── list-index-ios.less
│ │ │ │ ├── list-index-md.less
│ │ │ │ ├── list-index.js
│ │ │ │ └── list-index.less
│ │ │ ├── list
│ │ │ │ ├── list-ios.less
│ │ │ │ ├── list-md.less
│ │ │ │ ├── list.js
│ │ │ │ └── list.less
│ │ │ ├── login-screen
│ │ │ │ ├── login-screen-class.js
│ │ │ │ ├── login-screen-ios.less
│ │ │ │ ├── login-screen-md.less
│ │ │ │ ├── login-screen.js
│ │ │ │ └── login-screen.less
│ │ │ ├── messagebar
│ │ │ │ ├── messagebar-class.js
│ │ │ │ ├── messagebar-ios.less
│ │ │ │ ├── messagebar-md.less
│ │ │ │ ├── messagebar.js
│ │ │ │ └── messagebar.less
│ │ │ ├── messages
│ │ │ │ ├── messages-class.js
│ │ │ │ ├── messages-ios.less
│ │ │ │ ├── messages-md.less
│ │ │ │ ├── messages.js
│ │ │ │ └── messages.less
│ │ │ ├── modal
│ │ │ │ ├── custom-modal-class.js
│ │ │ │ ├── modal-class.js
│ │ │ │ ├── modal.js
│ │ │ │ └── modal.less
│ │ │ ├── navbar
│ │ │ │ ├── navbar-ios.less
│ │ │ │ ├── navbar-md.less
│ │ │ │ ├── navbar.js
│ │ │ │ └── navbar.less
│ │ │ ├── notification
│ │ │ │ ├── notification-class.js
│ │ │ │ ├── notification-ios.less
│ │ │ │ ├── notification-md.less
│ │ │ │ ├── notification.js
│ │ │ │ └── notification.less
│ │ │ ├── page
│ │ │ │ ├── page-ios.less
│ │ │ │ ├── page-md.less
│ │ │ │ ├── page.js
│ │ │ │ └── page.less
│ │ │ ├── panel
│ │ │ │ ├── panel-class.js
│ │ │ │ ├── panel-ios.less
│ │ │ │ ├── panel-md.less
│ │ │ │ ├── panel.js
│ │ │ │ ├── panel.less
│ │ │ │ └── swipe-panel.js
│ │ │ ├── photo-browser
│ │ │ │ ├── photo-browser-class.js
│ │ │ │ ├── photo-browser-ios.less
│ │ │ │ ├── photo-browser-md.less
│ │ │ │ ├── photo-browser.js
│ │ │ │ └── photo-browser.less
│ │ │ ├── picker
│ │ │ │ ├── picker-class.js
│ │ │ │ ├── picker-column.js
│ │ │ │ ├── picker-ios.less
│ │ │ │ ├── picker-md.less
│ │ │ │ ├── picker.js
│ │ │ │ └── picker.less
│ │ │ ├── popover
│ │ │ │ ├── popover-class.js
│ │ │ │ ├── popover-ios.less
│ │ │ │ ├── popover-md.less
│ │ │ │ ├── popover.js
│ │ │ │ └── popover.less
│ │ │ ├── popup
│ │ │ │ ├── popup-class.js
│ │ │ │ ├── popup-ios.less
│ │ │ │ ├── popup-md.less
│ │ │ │ ├── popup.js
│ │ │ │ └── popup.less
│ │ │ ├── preloader
│ │ │ │ ├── preloader-ios.less
│ │ │ │ ├── preloader-md.less
│ │ │ │ ├── preloader.js
│ │ │ │ └── preloader.less
│ │ │ ├── progressbar
│ │ │ │ ├── progressbar-ios.less
│ │ │ │ ├── progressbar-md.less
│ │ │ │ ├── progressbar.js
│ │ │ │ └── progressbar.less
│ │ │ ├── pull-to-refresh
│ │ │ │ ├── pull-to-refresh-class.js
│ │ │ │ ├── pull-to-refresh-ios.less
│ │ │ │ ├── pull-to-refresh-md.less
│ │ │ │ ├── pull-to-refresh.js
│ │ │ │ └── pull-to-refresh.less
│ │ │ ├── radio
│ │ │ │ ├── radio-ios.less
│ │ │ │ ├── radio-md.less
│ │ │ │ ├── radio.js
│ │ │ │ └── radio.less
│ │ │ ├── range
│ │ │ │ ├── range-class.js
│ │ │ │ ├── range-ios.less
│ │ │ │ ├── range-md.less
│ │ │ │ ├── range.js
│ │ │ │ └── range.less
│ │ │ ├── searchbar
│ │ │ │ ├── searchbar-class.js
│ │ │ │ ├── searchbar-ios.less
│ │ │ │ ├── searchbar-md.less
│ │ │ │ ├── searchbar.js
│ │ │ │ └── searchbar.less
│ │ │ ├── sheet
│ │ │ │ ├── sheet-class.js
│ │ │ │ ├── sheet-ios.less
│ │ │ │ ├── sheet-md.less
│ │ │ │ ├── sheet.js
│ │ │ │ └── sheet.less
│ │ │ ├── smart-select
│ │ │ │ ├── smart-select-class.js
│ │ │ │ ├── smart-select-ios.less
│ │ │ │ ├── smart-select-md.less
│ │ │ │ ├── smart-select.js
│ │ │ │ └── smart-select.less
│ │ │ ├── sortable
│ │ │ │ ├── sortable-ios.less
│ │ │ │ ├── sortable-md.less
│ │ │ │ ├── sortable.js
│ │ │ │ └── sortable.less
│ │ │ ├── statusbar
│ │ │ │ ├── statusbar-ios.less
│ │ │ │ ├── statusbar-md.less
│ │ │ │ ├── statusbar.js
│ │ │ │ └── statusbar.less
│ │ │ ├── stepper
│ │ │ │ ├── stepper-class.js
│ │ │ │ ├── stepper-ios.less
│ │ │ │ ├── stepper-md.less
│ │ │ │ ├── stepper.js
│ │ │ │ └── stepper.less
│ │ │ ├── subnavbar
│ │ │ │ ├── subnavbar-ios.less
│ │ │ │ ├── subnavbar-md.less
│ │ │ │ ├── subnavbar.js
│ │ │ │ └── subnavbar.less
│ │ │ ├── swipeout
│ │ │ │ ├── swipeout-ios.less
│ │ │ │ ├── swipeout-md.less
│ │ │ │ ├── swipeout.js
│ │ │ │ └── swipeout.less
│ │ │ ├── swiper
│ │ │ │ ├── swiper-class
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── a11y
│ │ │ │ │ │ │ ├── a11y.js
│ │ │ │ │ │ │ └── a11y.less
│ │ │ │ │ │ ├── autoplay
│ │ │ │ │ │ │ └── autoplay.js
│ │ │ │ │ │ ├── controller
│ │ │ │ │ │ │ ├── controller.js
│ │ │ │ │ │ │ └── controller.less
│ │ │ │ │ │ ├── core
│ │ │ │ │ │ │ ├── breakpoints
│ │ │ │ │ │ │ │ ├── getBreakpoint.js
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ └── setBreakpoint.js
│ │ │ │ │ │ │ ├── check-overflow
│ │ │ │ │ │ │ │ └── index.js
│ │ │ │ │ │ │ ├── classes
│ │ │ │ │ │ │ │ ├── addClasses.js
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ └── removeClasses.js
│ │ │ │ │ │ │ ├── core-class.js
│ │ │ │ │ │ │ ├── core.less
│ │ │ │ │ │ │ ├── defaults.js
│ │ │ │ │ │ │ ├── events
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── onClick.js
│ │ │ │ │ │ │ │ ├── onResize.js
│ │ │ │ │ │ │ │ ├── onTouchEnd.js
│ │ │ │ │ │ │ │ ├── onTouchMove.js
│ │ │ │ │ │ │ │ └── onTouchStart.js
│ │ │ │ │ │ │ ├── grab-cursor
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── setGrabCursor.js
│ │ │ │ │ │ │ │ └── unsetGrabCursor.js
│ │ │ │ │ │ │ ├── images
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── loadImage.js
│ │ │ │ │ │ │ │ └── preloadImages.js
│ │ │ │ │ │ │ ├── loop
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── loopCreate.js
│ │ │ │ │ │ │ │ ├── loopDestroy.js
│ │ │ │ │ │ │ │ └── loopFix.js
│ │ │ │ │ │ │ ├── manipulation
│ │ │ │ │ │ │ │ ├── appendSlide.js
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── prependSlide.js
│ │ │ │ │ │ │ │ ├── removeAllSlides.js
│ │ │ │ │ │ │ │ └── removeSlide.js
│ │ │ │ │ │ │ ├── slide
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── slideNext.js
│ │ │ │ │ │ │ │ ├── slidePrev.js
│ │ │ │ │ │ │ │ ├── slideReset.js
│ │ │ │ │ │ │ │ ├── slideTo.js
│ │ │ │ │ │ │ │ ├── slideToClickedSlide.js
│ │ │ │ │ │ │ │ ├── slideToClosest.js
│ │ │ │ │ │ │ │ └── slideToLoop.js
│ │ │ │ │ │ │ ├── transition
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── setTransition.js
│ │ │ │ │ │ │ │ ├── transitionEnd.js
│ │ │ │ │ │ │ │ └── transitionStart.js
│ │ │ │ │ │ │ ├── translate
│ │ │ │ │ │ │ │ ├── getTranslate.js
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── maxTranslate.js
│ │ │ │ │ │ │ │ ├── minTranslate.js
│ │ │ │ │ │ │ │ └── setTranslate.js
│ │ │ │ │ │ │ └── update
│ │ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ │ ├── updateActiveIndex.js
│ │ │ │ │ │ │ │ ├── updateAutoHeight.js
│ │ │ │ │ │ │ │ ├── updateClickedSlide.js
│ │ │ │ │ │ │ │ ├── updateProgress.js
│ │ │ │ │ │ │ │ ├── updateSize.js
│ │ │ │ │ │ │ │ ├── updateSlides.js
│ │ │ │ │ │ │ │ ├── updateSlidesClasses.js
│ │ │ │ │ │ │ │ ├── updateSlidesOffset.js
│ │ │ │ │ │ │ │ └── updateSlidesProgress.js
│ │ │ │ │ │ ├── effect-coverflow
│ │ │ │ │ │ │ ├── effect-coverflow.js
│ │ │ │ │ │ │ └── effect-coverflow.less
│ │ │ │ │ │ ├── effect-cube
│ │ │ │ │ │ │ ├── effect-cube.js
│ │ │ │ │ │ │ └── effect-cube.less
│ │ │ │ │ │ ├── effect-fade
│ │ │ │ │ │ │ ├── effect-fade.js
│ │ │ │ │ │ │ └── effect-fade.less
│ │ │ │ │ │ ├── effect-flip
│ │ │ │ │ │ │ ├── effect-flip.js
│ │ │ │ │ │ │ └── effect-flip.less
│ │ │ │ │ │ ├── hash-navigation
│ │ │ │ │ │ │ └── hash-navigation.js
│ │ │ │ │ │ ├── history
│ │ │ │ │ │ │ └── history.js
│ │ │ │ │ │ ├── keyboard
│ │ │ │ │ │ │ └── keyboard.js
│ │ │ │ │ │ ├── lazy
│ │ │ │ │ │ │ ├── lazy.js
│ │ │ │ │ │ │ └── lazy.less
│ │ │ │ │ │ ├── mousewheel
│ │ │ │ │ │ │ └── mousewheel.js
│ │ │ │ │ │ ├── navigation
│ │ │ │ │ │ │ ├── navigation.js
│ │ │ │ │ │ │ └── navigation.less
│ │ │ │ │ │ ├── pagination
│ │ │ │ │ │ │ ├── pagination.js
│ │ │ │ │ │ │ └── pagination.less
│ │ │ │ │ │ ├── parallax
│ │ │ │ │ │ │ └── parallax.js
│ │ │ │ │ │ ├── scrollbar
│ │ │ │ │ │ │ ├── scrollbar.js
│ │ │ │ │ │ │ └── scrollbar.less
│ │ │ │ │ │ ├── virtual
│ │ │ │ │ │ │ └── virtual.js
│ │ │ │ │ │ └── zoom
│ │ │ │ │ │ │ ├── zoom.js
│ │ │ │ │ │ │ └── zoom.less
│ │ │ │ │ ├── less
│ │ │ │ │ │ └── mixins.less
│ │ │ │ │ ├── modules
│ │ │ │ │ │ ├── browser
│ │ │ │ │ │ │ └── browser.js
│ │ │ │ │ │ ├── defaults
│ │ │ │ │ │ │ └── defaults.js
│ │ │ │ │ │ ├── device
│ │ │ │ │ │ │ └── device.js
│ │ │ │ │ │ ├── observer
│ │ │ │ │ │ │ └── observer.js
│ │ │ │ │ │ ├── resize
│ │ │ │ │ │ │ ├── resize.js
│ │ │ │ │ │ │ └── resize.less
│ │ │ │ │ │ └── support
│ │ │ │ │ │ │ └── support.js
│ │ │ │ │ ├── swiper.js
│ │ │ │ │ ├── swiper.less
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── browser.js
│ │ │ │ │ │ ├── class.js
│ │ │ │ │ │ ├── device.js
│ │ │ │ │ │ ├── document.js
│ │ │ │ │ │ ├── dom.js
│ │ │ │ │ │ ├── support.js
│ │ │ │ │ │ ├── utils.js
│ │ │ │ │ │ └── window.js
│ │ │ │ ├── swiper-ios.less
│ │ │ │ ├── swiper-md.less
│ │ │ │ ├── swiper.js
│ │ │ │ └── swiper.less
│ │ │ ├── tabs
│ │ │ │ ├── tabs-ios.less
│ │ │ │ ├── tabs-md.less
│ │ │ │ ├── tabs.js
│ │ │ │ └── tabs.less
│ │ │ ├── timeline
│ │ │ │ ├── timeline-ios.less
│ │ │ │ ├── timeline-md.less
│ │ │ │ ├── timeline.js
│ │ │ │ └── timeline.less
│ │ │ ├── toast
│ │ │ │ ├── toast-class.js
│ │ │ │ ├── toast-ios.less
│ │ │ │ ├── toast-md.less
│ │ │ │ ├── toast.js
│ │ │ │ └── toast.less
│ │ │ ├── toggle
│ │ │ │ ├── toggle-class.js
│ │ │ │ ├── toggle-ios.less
│ │ │ │ ├── toggle-md.less
│ │ │ │ ├── toggle.js
│ │ │ │ └── toggle.less
│ │ │ ├── toolbar
│ │ │ │ ├── toolbar-ios.less
│ │ │ │ ├── toolbar-md.less
│ │ │ │ ├── toolbar.js
│ │ │ │ └── toolbar.less
│ │ │ ├── touch-ripple
│ │ │ │ ├── touch-ripple-class.js
│ │ │ │ ├── touch-ripple-ios.less
│ │ │ │ ├── touch-ripple-md.less
│ │ │ │ ├── touch-ripple.js
│ │ │ │ └── touch-ripple.less
│ │ │ ├── typography
│ │ │ │ ├── typography-ios.less
│ │ │ │ ├── typography-md.less
│ │ │ │ ├── typography.js
│ │ │ │ └── typography.less
│ │ │ ├── vi
│ │ │ │ ├── vi-class.js
│ │ │ │ ├── vi-ios.less
│ │ │ │ ├── vi-md.less
│ │ │ │ ├── vi.js
│ │ │ │ └── vi.less
│ │ │ ├── view
│ │ │ │ ├── view-class.js
│ │ │ │ ├── view.js
│ │ │ │ └── view.less
│ │ │ └── virtual-list
│ │ │ │ ├── virtual-list-class.js
│ │ │ │ ├── virtual-list-ios.less
│ │ │ │ ├── virtual-list-md.less
│ │ │ │ ├── virtual-list.js
│ │ │ │ └── virtual-list.less
│ │ ├── css
│ │ │ ├── framework7.css
│ │ │ ├── framework7.ios.css
│ │ │ ├── framework7.ios.min.css
│ │ │ ├── framework7.md.css
│ │ │ ├── framework7.md.min.css
│ │ │ ├── framework7.min.css
│ │ │ ├── framework7.rtl.css
│ │ │ ├── framework7.rtl.ios.css
│ │ │ ├── framework7.rtl.ios.min.css
│ │ │ ├── framework7.rtl.md.css
│ │ │ ├── framework7.rtl.md.min.css
│ │ │ └── framework7.rtl.min.css
│ │ ├── framework7.esm.bundle.js
│ │ ├── framework7.esm.js
│ │ ├── framework7.less
│ │ ├── js
│ │ │ ├── framework7.js
│ │ │ ├── framework7.min.js
│ │ │ └── framework7.min.js.map
│ │ ├── less
│ │ │ ├── colors-ios.less
│ │ │ ├── colors-md.less
│ │ │ ├── mixins.less
│ │ │ ├── vars-ios.less
│ │ │ └── vars-md.less
│ │ ├── modules
│ │ │ ├── clicks
│ │ │ │ └── clicks.js
│ │ │ ├── demo-module.js
│ │ │ ├── device
│ │ │ │ └── device.js
│ │ │ ├── history
│ │ │ │ └── history.js
│ │ │ ├── request
│ │ │ │ └── request.js
│ │ │ ├── resize
│ │ │ │ └── resize.js
│ │ │ ├── router
│ │ │ │ ├── back.js
│ │ │ │ ├── clear-history.js
│ │ │ │ ├── clear-previous-history.js
│ │ │ │ ├── modal.js
│ │ │ │ ├── navigate.js
│ │ │ │ ├── redirect.js
│ │ │ │ ├── router-class.js
│ │ │ │ ├── router.js
│ │ │ │ ├── swipe-back.js
│ │ │ │ └── tab.js
│ │ │ ├── storage
│ │ │ │ └── storage.js
│ │ │ ├── support
│ │ │ │ └── support.js
│ │ │ ├── touch
│ │ │ │ └── touch.js
│ │ │ └── utils
│ │ │ │ └── utils.js
│ │ └── utils
│ │ │ ├── bezier.js
│ │ │ ├── class.js
│ │ │ ├── component.js
│ │ │ ├── constructor-methods.js
│ │ │ ├── device.js
│ │ │ ├── history.js
│ │ │ ├── modal-methods.js
│ │ │ ├── request.js
│ │ │ ├── support.js
│ │ │ └── utils.js
│ ├── gulpfile.js
│ ├── kitchen-sink
│ │ ├── css
│ │ │ └── app.css
│ │ ├── fonts
│ │ │ ├── Framework7Icons-Regular.eot
│ │ │ ├── Framework7Icons-Regular.ttf
│ │ │ ├── Framework7Icons-Regular.woff
│ │ │ ├── Framework7Icons-Regular.woff2
│ │ │ ├── MaterialIcons-Regular.eot
│ │ │ ├── MaterialIcons-Regular.svg
│ │ │ ├── MaterialIcons-Regular.ttf
│ │ │ ├── MaterialIcons-Regular.woff
│ │ │ └── MaterialIcons-Regular.woff2
│ │ ├── img
│ │ │ ├── beach.jpg
│ │ │ ├── f7-icon-square.png
│ │ │ ├── f7-icon.png
│ │ │ ├── lock.jpg
│ │ │ ├── monkey.jpg
│ │ │ ├── mountains.jpg
│ │ │ └── vi-icon.png
│ │ ├── index.html
│ │ ├── js
│ │ │ ├── app.js
│ │ │ ├── autocomplete-languages.json
│ │ │ └── routes.js
│ │ └── pages
│ │ │ ├── 404.html
│ │ │ ├── about.html
│ │ │ ├── accordion.html
│ │ │ ├── action-sheet.html
│ │ │ ├── autocomplete.html
│ │ │ ├── badge.html
│ │ │ ├── buttons.html
│ │ │ ├── calendar-page.html
│ │ │ ├── calendar.html
│ │ │ ├── cards.html
│ │ │ ├── checkbox.html
│ │ │ ├── chips.html
│ │ │ ├── color-themes.html
│ │ │ ├── contacts-list.html
│ │ │ ├── content-block.html
│ │ │ ├── data-table.html
│ │ │ ├── dialog.html
│ │ │ ├── fab-morph.html
│ │ │ ├── fab.html
│ │ │ ├── form-storage.html
│ │ │ ├── grid.html
│ │ │ ├── icons.html
│ │ │ ├── infinite-scroll.html
│ │ │ ├── inputs.html
│ │ │ ├── lazy-load.html
│ │ │ ├── list-index.html
│ │ │ ├── list.html
│ │ │ ├── login-screen-page.html
│ │ │ ├── login-screen.html
│ │ │ ├── messages.html
│ │ │ ├── navbar-hide-scroll.html
│ │ │ ├── navbar.html
│ │ │ ├── notifications.html
│ │ │ ├── page-loader-component.html
│ │ │ ├── page-loader-template7.html
│ │ │ ├── panel.html
│ │ │ ├── photo-browser.html
│ │ │ ├── picker.html
│ │ │ ├── popover.html
│ │ │ ├── popup.html
│ │ │ ├── preloader.html
│ │ │ ├── progressbar.html
│ │ │ ├── pull-to-refresh.html
│ │ │ ├── radio.html
│ │ │ ├── range.html
│ │ │ ├── searchbar-expandable.html
│ │ │ ├── searchbar.html
│ │ │ ├── sheet-modal.html
│ │ │ ├── smart-select.html
│ │ │ ├── sortable.html
│ │ │ ├── statusbar.html
│ │ │ ├── stepper.html
│ │ │ ├── subnavbar-title.html
│ │ │ ├── subnavbar.html
│ │ │ ├── swipeout.html
│ │ │ ├── swiper-3d-coverflow.html
│ │ │ ├── swiper-3d-cube.html
│ │ │ ├── swiper-3d-flip.html
│ │ │ ├── swiper-custom-controls.html
│ │ │ ├── swiper-fade.html
│ │ │ ├── swiper-gallery.html
│ │ │ ├── swiper-horizontal.html
│ │ │ ├── swiper-lazy.html
│ │ │ ├── swiper-loop.html
│ │ │ ├── swiper-multiple.html
│ │ │ ├── swiper-nested.html
│ │ │ ├── swiper-pagination-fraction.html
│ │ │ ├── swiper-pagination-progress.html
│ │ │ ├── swiper-parallax.html
│ │ │ ├── swiper-scrollbar.html
│ │ │ ├── swiper-space-between.html
│ │ │ ├── swiper-vertical.html
│ │ │ ├── swiper-zoom.html
│ │ │ ├── swiper.html
│ │ │ ├── tabbar-labels.html
│ │ │ ├── tabbar-scrollable.html
│ │ │ ├── tabbar.html
│ │ │ ├── tabs-animated.html
│ │ │ ├── tabs-routable.html
│ │ │ ├── tabs-static.html
│ │ │ ├── tabs-swipeable.html
│ │ │ ├── tabs.html
│ │ │ ├── timeline-horizontal-calendar.html
│ │ │ ├── timeline-horizontal.html
│ │ │ ├── timeline-vertical.html
│ │ │ ├── timeline.html
│ │ │ ├── toast.html
│ │ │ ├── toggle.html
│ │ │ ├── toolbar-hide-scroll.html
│ │ │ ├── toolbar-tabbar.html
│ │ │ ├── vi.html
│ │ │ └── virtual-list.html
│ ├── package-lock.json
│ ├── package.json
│ ├── scripts
│ │ ├── banner.js
│ │ ├── build-components.js
│ │ ├── build-config.js
│ │ ├── build-js.js
│ │ ├── build-ks.js
│ │ ├── build-less.js
│ │ ├── get-config.js
│ │ ├── get-output.js
│ │ └── gulpfile.js
│ └── src
│ │ ├── components
│ │ ├── accordion
│ │ │ ├── accordion-ios.less
│ │ │ ├── accordion-md.less
│ │ │ ├── accordion.js
│ │ │ └── accordion.less
│ │ ├── actions
│ │ │ ├── actions-class.js
│ │ │ ├── actions-ios.less
│ │ │ ├── actions-md.less
│ │ │ ├── actions.js
│ │ │ └── actions.less
│ │ ├── autocomplete
│ │ │ ├── autocomplete-class.js
│ │ │ ├── autocomplete-ios.less
│ │ │ ├── autocomplete-md.less
│ │ │ ├── autocomplete.js
│ │ │ └── autocomplete.less
│ │ ├── badge
│ │ │ ├── badge-ios.less
│ │ │ ├── badge-md.less
│ │ │ ├── badge.js
│ │ │ └── badge.less
│ │ ├── block
│ │ │ ├── block-ios.less
│ │ │ ├── block-md.less
│ │ │ ├── block.js
│ │ │ └── block.less
│ │ ├── button
│ │ │ ├── button-ios.less
│ │ │ ├── button-md.less
│ │ │ ├── button.js
│ │ │ └── button.less
│ │ ├── calendar
│ │ │ ├── calendar-class.js
│ │ │ ├── calendar-ios.less
│ │ │ ├── calendar-md.less
│ │ │ ├── calendar.js
│ │ │ └── calendar.less
│ │ ├── card
│ │ │ ├── card-ios.less
│ │ │ ├── card-md.less
│ │ │ ├── card.js
│ │ │ └── card.less
│ │ ├── checkbox
│ │ │ ├── checkbox-ios.less
│ │ │ ├── checkbox-md.less
│ │ │ ├── checkbox.js
│ │ │ └── checkbox.less
│ │ ├── chip
│ │ │ ├── chip-ios.less
│ │ │ ├── chip-md.less
│ │ │ ├── chip.js
│ │ │ └── chip.less
│ │ ├── contacts-list
│ │ │ ├── contact-list.js
│ │ │ ├── contacts-list-ios.less
│ │ │ ├── contacts-list-md.less
│ │ │ └── contacts-list.less
│ │ ├── core
│ │ │ ├── core-class.js
│ │ │ ├── core-ios.less
│ │ │ ├── core-md.less
│ │ │ └── core.less
│ │ ├── data-table
│ │ │ ├── data-table-class.js
│ │ │ ├── data-table-ios.less
│ │ │ ├── data-table-md.less
│ │ │ ├── data-table.js
│ │ │ └── data-table.less
│ │ ├── dialog
│ │ │ ├── dialog-class.js
│ │ │ ├── dialog-ios.less
│ │ │ ├── dialog-md.less
│ │ │ ├── dialog.js
│ │ │ └── dialog.less
│ │ ├── fab
│ │ │ ├── fab-ios.less
│ │ │ ├── fab-md.less
│ │ │ ├── fab.js
│ │ │ └── fab.less
│ │ ├── form
│ │ │ └── form.js
│ │ ├── grid
│ │ │ ├── grid-ios.less
│ │ │ ├── grid-md.less
│ │ │ ├── grid.js
│ │ │ └── grid.less
│ │ ├── icon
│ │ │ ├── icon-ios.less
│ │ │ ├── icon-md.less
│ │ │ ├── icon.js
│ │ │ └── icon.less
│ │ ├── infinite-scroll
│ │ │ ├── infinite-scroll-ios.less
│ │ │ ├── infinite-scroll-md.less
│ │ │ ├── infinite-scroll.js
│ │ │ └── infinite-scroll.less
│ │ ├── input
│ │ │ ├── input-ios.less
│ │ │ ├── input-md.less
│ │ │ ├── input.js
│ │ │ └── input.less
│ │ ├── lazy
│ │ │ ├── lazy-ios.less
│ │ │ ├── lazy-md.less
│ │ │ ├── lazy.js
│ │ │ └── lazy.less
│ │ ├── link
│ │ │ ├── link-ios.less
│ │ │ ├── link-md.less
│ │ │ ├── link.js
│ │ │ └── link.less
│ │ ├── list-index
│ │ │ ├── list-index-class.js
│ │ │ ├── list-index-ios.less
│ │ │ ├── list-index-md.less
│ │ │ ├── list-index.js
│ │ │ └── list-index.less
│ │ ├── list
│ │ │ ├── list-ios.less
│ │ │ ├── list-md.less
│ │ │ ├── list.js
│ │ │ └── list.less
│ │ ├── login-screen
│ │ │ ├── login-screen-class.js
│ │ │ ├── login-screen-ios.less
│ │ │ ├── login-screen-md.less
│ │ │ ├── login-screen.js
│ │ │ └── login-screen.less
│ │ ├── messagebar
│ │ │ ├── messagebar-class.js
│ │ │ ├── messagebar-ios.less
│ │ │ ├── messagebar-md.less
│ │ │ ├── messagebar.js
│ │ │ └── messagebar.less
│ │ ├── messages
│ │ │ ├── messages-class.js
│ │ │ ├── messages-ios.less
│ │ │ ├── messages-md.less
│ │ │ ├── messages.js
│ │ │ └── messages.less
│ │ ├── modal
│ │ │ ├── custom-modal-class.js
│ │ │ ├── modal-class.js
│ │ │ ├── modal.js
│ │ │ └── modal.less
│ │ ├── navbar
│ │ │ ├── navbar-ios.less
│ │ │ ├── navbar-md.less
│ │ │ ├── navbar.js
│ │ │ └── navbar.less
│ │ ├── notification
│ │ │ ├── notification-class.js
│ │ │ ├── notification-ios.less
│ │ │ ├── notification-md.less
│ │ │ ├── notification.js
│ │ │ └── notification.less
│ │ ├── page
│ │ │ ├── page-ios.less
│ │ │ ├── page-md.less
│ │ │ ├── page.js
│ │ │ └── page.less
│ │ ├── panel
│ │ │ ├── panel-class.js
│ │ │ ├── panel-ios.less
│ │ │ ├── panel-md.less
│ │ │ ├── panel.js
│ │ │ ├── panel.less
│ │ │ └── swipe-panel.js
│ │ ├── photo-browser
│ │ │ ├── photo-browser-class.js
│ │ │ ├── photo-browser-ios.less
│ │ │ ├── photo-browser-md.less
│ │ │ ├── photo-browser.js
│ │ │ └── photo-browser.less
│ │ ├── picker
│ │ │ ├── picker-class.js
│ │ │ ├── picker-column.js
│ │ │ ├── picker-ios.less
│ │ │ ├── picker-md.less
│ │ │ ├── picker.js
│ │ │ └── picker.less
│ │ ├── popover
│ │ │ ├── popover-class.js
│ │ │ ├── popover-ios.less
│ │ │ ├── popover-md.less
│ │ │ ├── popover.js
│ │ │ └── popover.less
│ │ ├── popup
│ │ │ ├── popup-class.js
│ │ │ ├── popup-ios.less
│ │ │ ├── popup-md.less
│ │ │ ├── popup.js
│ │ │ └── popup.less
│ │ ├── preloader
│ │ │ ├── preloader-ios.less
│ │ │ ├── preloader-md.less
│ │ │ ├── preloader.js
│ │ │ └── preloader.less
│ │ ├── progressbar
│ │ │ ├── progressbar-ios.less
│ │ │ ├── progressbar-md.less
│ │ │ ├── progressbar.js
│ │ │ └── progressbar.less
│ │ ├── pull-to-refresh
│ │ │ ├── pull-to-refresh-class.js
│ │ │ ├── pull-to-refresh-ios.less
│ │ │ ├── pull-to-refresh-md.less
│ │ │ ├── pull-to-refresh.js
│ │ │ └── pull-to-refresh.less
│ │ ├── radio
│ │ │ ├── radio-ios.less
│ │ │ ├── radio-md.less
│ │ │ ├── radio.js
│ │ │ └── radio.less
│ │ ├── range
│ │ │ ├── range-class.js
│ │ │ ├── range-ios.less
│ │ │ ├── range-md.less
│ │ │ ├── range.js
│ │ │ └── range.less
│ │ ├── searchbar
│ │ │ ├── searchbar-class.js
│ │ │ ├── searchbar-ios.less
│ │ │ ├── searchbar-md.less
│ │ │ ├── searchbar.js
│ │ │ └── searchbar.less
│ │ ├── sheet
│ │ │ ├── sheet-class.js
│ │ │ ├── sheet-ios.less
│ │ │ ├── sheet-md.less
│ │ │ ├── sheet.js
│ │ │ └── sheet.less
│ │ ├── smart-select
│ │ │ ├── smart-select-class.js
│ │ │ ├── smart-select-ios.less
│ │ │ ├── smart-select-md.less
│ │ │ ├── smart-select.js
│ │ │ └── smart-select.less
│ │ ├── sortable
│ │ │ ├── sortable-ios.less
│ │ │ ├── sortable-md.less
│ │ │ ├── sortable.js
│ │ │ └── sortable.less
│ │ ├── statusbar
│ │ │ ├── statusbar-ios.less
│ │ │ ├── statusbar-md.less
│ │ │ ├── statusbar.js
│ │ │ └── statusbar.less
│ │ ├── stepper
│ │ │ ├── stepper-class.js
│ │ │ ├── stepper-ios.less
│ │ │ ├── stepper-md.less
│ │ │ ├── stepper.js
│ │ │ └── stepper.less
│ │ ├── subnavbar
│ │ │ ├── subnavbar-ios.less
│ │ │ ├── subnavbar-md.less
│ │ │ ├── subnavbar.js
│ │ │ └── subnavbar.less
│ │ ├── swipeout
│ │ │ ├── swipeout-ios.less
│ │ │ ├── swipeout-md.less
│ │ │ ├── swipeout.js
│ │ │ └── swipeout.less
│ │ ├── swiper
│ │ │ ├── swiper-class
│ │ │ │ ├── components
│ │ │ │ │ ├── a11y
│ │ │ │ │ │ ├── a11y.js
│ │ │ │ │ │ └── a11y.less
│ │ │ │ │ ├── autoplay
│ │ │ │ │ │ └── autoplay.js
│ │ │ │ │ ├── controller
│ │ │ │ │ │ ├── controller.js
│ │ │ │ │ │ └── controller.less
│ │ │ │ │ ├── core
│ │ │ │ │ │ ├── breakpoints
│ │ │ │ │ │ │ ├── getBreakpoint.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ └── setBreakpoint.js
│ │ │ │ │ │ ├── check-overflow
│ │ │ │ │ │ │ └── index.js
│ │ │ │ │ │ ├── classes
│ │ │ │ │ │ │ ├── addClasses.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ └── removeClasses.js
│ │ │ │ │ │ ├── core-class.js
│ │ │ │ │ │ ├── core.less
│ │ │ │ │ │ ├── defaults.js
│ │ │ │ │ │ ├── events
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── onClick.js
│ │ │ │ │ │ │ ├── onResize.js
│ │ │ │ │ │ │ ├── onTouchEnd.js
│ │ │ │ │ │ │ ├── onTouchMove.js
│ │ │ │ │ │ │ └── onTouchStart.js
│ │ │ │ │ │ ├── grab-cursor
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── setGrabCursor.js
│ │ │ │ │ │ │ └── unsetGrabCursor.js
│ │ │ │ │ │ ├── images
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── loadImage.js
│ │ │ │ │ │ │ └── preloadImages.js
│ │ │ │ │ │ ├── loop
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── loopCreate.js
│ │ │ │ │ │ │ ├── loopDestroy.js
│ │ │ │ │ │ │ └── loopFix.js
│ │ │ │ │ │ ├── manipulation
│ │ │ │ │ │ │ ├── appendSlide.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── prependSlide.js
│ │ │ │ │ │ │ ├── removeAllSlides.js
│ │ │ │ │ │ │ └── removeSlide.js
│ │ │ │ │ │ ├── slide
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── slideNext.js
│ │ │ │ │ │ │ ├── slidePrev.js
│ │ │ │ │ │ │ ├── slideReset.js
│ │ │ │ │ │ │ ├── slideTo.js
│ │ │ │ │ │ │ ├── slideToClickedSlide.js
│ │ │ │ │ │ │ ├── slideToClosest.js
│ │ │ │ │ │ │ └── slideToLoop.js
│ │ │ │ │ │ ├── transition
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── setTransition.js
│ │ │ │ │ │ │ ├── transitionEnd.js
│ │ │ │ │ │ │ └── transitionStart.js
│ │ │ │ │ │ ├── translate
│ │ │ │ │ │ │ ├── getTranslate.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── maxTranslate.js
│ │ │ │ │ │ │ ├── minTranslate.js
│ │ │ │ │ │ │ └── setTranslate.js
│ │ │ │ │ │ └── update
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── updateActiveIndex.js
│ │ │ │ │ │ │ ├── updateAutoHeight.js
│ │ │ │ │ │ │ ├── updateClickedSlide.js
│ │ │ │ │ │ │ ├── updateProgress.js
│ │ │ │ │ │ │ ├── updateSize.js
│ │ │ │ │ │ │ ├── updateSlides.js
│ │ │ │ │ │ │ ├── updateSlidesClasses.js
│ │ │ │ │ │ │ ├── updateSlidesOffset.js
│ │ │ │ │ │ │ └── updateSlidesProgress.js
│ │ │ │ │ ├── effect-coverflow
│ │ │ │ │ │ ├── effect-coverflow.js
│ │ │ │ │ │ └── effect-coverflow.less
│ │ │ │ │ ├── effect-cube
│ │ │ │ │ │ ├── effect-cube.js
│ │ │ │ │ │ └── effect-cube.less
│ │ │ │ │ ├── effect-fade
│ │ │ │ │ │ ├── effect-fade.js
│ │ │ │ │ │ └── effect-fade.less
│ │ │ │ │ ├── effect-flip
│ │ │ │ │ │ ├── effect-flip.js
│ │ │ │ │ │ └── effect-flip.less
│ │ │ │ │ ├── hash-navigation
│ │ │ │ │ │ └── hash-navigation.js
│ │ │ │ │ ├── history
│ │ │ │ │ │ └── history.js
│ │ │ │ │ ├── keyboard
│ │ │ │ │ │ └── keyboard.js
│ │ │ │ │ ├── lazy
│ │ │ │ │ │ ├── lazy.js
│ │ │ │ │ │ └── lazy.less
│ │ │ │ │ ├── mousewheel
│ │ │ │ │ │ └── mousewheel.js
│ │ │ │ │ ├── navigation
│ │ │ │ │ │ ├── navigation.js
│ │ │ │ │ │ └── navigation.less
│ │ │ │ │ ├── pagination
│ │ │ │ │ │ ├── pagination.js
│ │ │ │ │ │ └── pagination.less
│ │ │ │ │ ├── parallax
│ │ │ │ │ │ └── parallax.js
│ │ │ │ │ ├── scrollbar
│ │ │ │ │ │ ├── scrollbar.js
│ │ │ │ │ │ └── scrollbar.less
│ │ │ │ │ ├── virtual
│ │ │ │ │ │ └── virtual.js
│ │ │ │ │ └── zoom
│ │ │ │ │ │ ├── zoom.js
│ │ │ │ │ │ └── zoom.less
│ │ │ │ ├── less
│ │ │ │ │ └── mixins.less
│ │ │ │ ├── modules
│ │ │ │ │ ├── browser
│ │ │ │ │ │ └── browser.js
│ │ │ │ │ ├── device
│ │ │ │ │ │ └── device.js
│ │ │ │ │ ├── observer
│ │ │ │ │ │ └── observer.js
│ │ │ │ │ ├── resize
│ │ │ │ │ │ ├── resize.js
│ │ │ │ │ │ └── resize.less
│ │ │ │ │ └── support
│ │ │ │ │ │ └── support.js
│ │ │ │ ├── swiper.js
│ │ │ │ ├── swiper.less
│ │ │ │ └── utils
│ │ │ │ │ ├── browser.js
│ │ │ │ │ ├── class.js
│ │ │ │ │ ├── device.js
│ │ │ │ │ ├── dom.js
│ │ │ │ │ ├── support.js
│ │ │ │ │ └── utils.js
│ │ │ ├── swiper-ios.less
│ │ │ ├── swiper-md.less
│ │ │ ├── swiper.js
│ │ │ └── swiper.less
│ │ ├── tabs
│ │ │ ├── tabs-ios.less
│ │ │ ├── tabs-md.less
│ │ │ ├── tabs.js
│ │ │ └── tabs.less
│ │ ├── timeline
│ │ │ ├── timeline-ios.less
│ │ │ ├── timeline-md.less
│ │ │ ├── timeline.js
│ │ │ └── timeline.less
│ │ ├── toast
│ │ │ ├── toast-class.js
│ │ │ ├── toast-ios.less
│ │ │ ├── toast-md.less
│ │ │ ├── toast.js
│ │ │ └── toast.less
│ │ ├── toggle
│ │ │ ├── toggle-class.js
│ │ │ ├── toggle-ios.less
│ │ │ ├── toggle-md.less
│ │ │ ├── toggle.js
│ │ │ └── toggle.less
│ │ ├── toolbar
│ │ │ ├── toolbar-ios.less
│ │ │ ├── toolbar-md.less
│ │ │ ├── toolbar.js
│ │ │ └── toolbar.less
│ │ ├── touch-ripple
│ │ │ ├── touch-ripple-class.js
│ │ │ ├── touch-ripple-ios.less
│ │ │ ├── touch-ripple-md.less
│ │ │ ├── touch-ripple.js
│ │ │ └── touch-ripple.less
│ │ ├── typography
│ │ │ ├── typography-ios.less
│ │ │ ├── typography-md.less
│ │ │ ├── typography.js
│ │ │ └── typography.less
│ │ ├── vi
│ │ │ ├── vi-class.js
│ │ │ ├── vi-ios.less
│ │ │ ├── vi-md.less
│ │ │ ├── vi.js
│ │ │ └── vi.less
│ │ ├── view
│ │ │ ├── view-class.js
│ │ │ ├── view.js
│ │ │ └── view.less
│ │ └── virtual-list
│ │ │ ├── virtual-list-class.js
│ │ │ ├── virtual-list-ios.less
│ │ │ ├── virtual-list-md.less
│ │ │ ├── virtual-list.js
│ │ │ └── virtual-list.less
│ │ ├── framework7.js
│ │ ├── framework7.less
│ │ ├── less
│ │ ├── colors-ios.less
│ │ ├── colors-md.less
│ │ ├── mixins.less
│ │ ├── vars-ios.less
│ │ └── vars-md.less
│ │ ├── modules
│ │ ├── clicks
│ │ │ └── clicks.js
│ │ ├── demo-module.js
│ │ ├── device
│ │ │ └── device.js
│ │ ├── history
│ │ │ └── history.js
│ │ ├── request
│ │ │ └── request.js
│ │ ├── resize
│ │ │ └── resize.js
│ │ ├── router
│ │ │ ├── back.js
│ │ │ ├── clear-history.js
│ │ │ ├── clear-previous-history.js
│ │ │ ├── modal.js
│ │ │ ├── navigate.js
│ │ │ ├── redirect.js
│ │ │ ├── router-class.js
│ │ │ ├── router.js
│ │ │ ├── swipe-back.js
│ │ │ └── tab.js
│ │ ├── storage
│ │ │ └── storage.js
│ │ ├── support
│ │ │ └── support.js
│ │ ├── touch
│ │ │ └── touch.js
│ │ └── utils
│ │ │ └── utils.js
│ │ └── utils
│ │ ├── bezier.js
│ │ ├── class.js
│ │ ├── component.js
│ │ ├── constructor-methods.js
│ │ ├── device.js
│ │ ├── history.js
│ │ ├── modal-methods.js
│ │ ├── request.js
│ │ ├── support.js
│ │ └── utils.js
│ ├── hooks
│ └── README.md
│ ├── plugins
│ ├── cordova-plugin-whitelist
│ │ ├── CONTRIBUTING.md
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ ├── README.md
│ │ ├── RELEASENOTES.md
│ │ ├── doc
│ │ │ ├── de
│ │ │ │ └── README.md
│ │ │ ├── es
│ │ │ │ └── README.md
│ │ │ ├── fr
│ │ │ │ └── README.md
│ │ │ ├── it
│ │ │ │ └── README.md
│ │ │ ├── ja
│ │ │ │ └── README.md
│ │ │ ├── ko
│ │ │ │ └── README.md
│ │ │ ├── pl
│ │ │ │ └── README.md
│ │ │ └── zh
│ │ │ │ └── README.md
│ │ ├── package.json
│ │ ├── plugin.xml
│ │ └── src
│ │ │ └── android
│ │ │ └── WhitelistPlugin.java
│ └── fetch.json
│ ├── res
│ ├── README.md
│ ├── icon
│ │ ├── android
│ │ │ ├── icon-36-ldpi.png
│ │ │ ├── icon-48-mdpi.png
│ │ │ ├── icon-72-hdpi.png
│ │ │ └── icon-96-xhdpi.png
│ │ ├── bada-wac
│ │ │ ├── icon-48-type5.png
│ │ │ ├── icon-50-type3.png
│ │ │ └── icon-80-type4.png
│ │ ├── bada
│ │ │ └── icon-128.png
│ │ ├── blackberry
│ │ │ └── icon-80.png
│ │ ├── blackberry10
│ │ │ └── icon-80.png
│ │ ├── ios
│ │ │ ├── icon-57-2x.png
│ │ │ ├── icon-57.png
│ │ │ ├── icon-72-2x.png
│ │ │ └── icon-72.png
│ │ ├── tizen
│ │ │ └── icon-128.png
│ │ ├── webos
│ │ │ └── icon-64.png
│ │ └── windows-phone
│ │ │ ├── icon-173-tile.png
│ │ │ ├── icon-48.png
│ │ │ └── icon-62-tile.png
│ └── screen
│ │ ├── android
│ │ ├── screen-hdpi-landscape.png
│ │ ├── screen-hdpi-portrait.png
│ │ ├── screen-ldpi-landscape.png
│ │ ├── screen-ldpi-portrait.png
│ │ ├── screen-mdpi-landscape.png
│ │ ├── screen-mdpi-portrait.png
│ │ ├── screen-xhdpi-landscape.png
│ │ └── screen-xhdpi-portrait.png
│ │ ├── bada-wac
│ │ ├── screen-type3.png
│ │ ├── screen-type4.png
│ │ └── screen-type5.png
│ │ ├── bada
│ │ └── screen-portrait.png
│ │ ├── blackberry
│ │ └── screen-225.png
│ │ ├── blackberry10
│ │ ├── splash-1280x768.png
│ │ ├── splash-720x720.png
│ │ └── splash-768x1280.png
│ │ ├── ios
│ │ ├── screen-ipad-landscape-2x.png
│ │ ├── screen-ipad-landscape.png
│ │ ├── screen-ipad-portrait-2x.png
│ │ ├── screen-ipad-portrait.png
│ │ ├── screen-iphone-landscape-2x.png
│ │ ├── screen-iphone-landscape.png
│ │ ├── screen-iphone-portrait-2x.png
│ │ ├── screen-iphone-portrait-568h-2x.png
│ │ └── screen-iphone-portrait.png
│ │ ├── tizen
│ │ └── README.md
│ │ ├── webos
│ │ └── screen-64.png
│ │ └── windows-phone
│ │ └── screen-portrait.jpg
│ └── www
│ ├── config.xml
│ ├── css
│ └── app.css
│ ├── fonts
│ ├── Framework7Icons-Regular.eot
│ ├── Framework7Icons-Regular.ttf
│ ├── Framework7Icons-Regular.woff
│ ├── Framework7Icons-Regular.woff2
│ ├── MaterialIcons-Regular.eot
│ ├── MaterialIcons-Regular.svg
│ ├── MaterialIcons-Regular.ttf
│ ├── MaterialIcons-Regular.woff
│ └── MaterialIcons-Regular.woff2
│ ├── img
│ ├── beach.jpg
│ ├── f7-icon-square.png
│ ├── f7-icon.png
│ ├── lock.jpg
│ ├── monkey.jpg
│ ├── mountains.jpg
│ └── vi-icon.png
│ ├── index.html
│ ├── js
│ ├── app.js
│ ├── autocomplete-languages.json
│ └── routes.js
│ ├── lib
│ ├── components
│ │ ├── accordion
│ │ │ ├── accordion-ios.less
│ │ │ ├── accordion-md.less
│ │ │ ├── accordion.js
│ │ │ └── accordion.less
│ │ ├── actions
│ │ │ ├── actions-class.js
│ │ │ ├── actions-ios.less
│ │ │ ├── actions-md.less
│ │ │ ├── actions.js
│ │ │ └── actions.less
│ │ ├── autocomplete
│ │ │ ├── autocomplete-class.js
│ │ │ ├── autocomplete-ios.less
│ │ │ ├── autocomplete-md.less
│ │ │ ├── autocomplete.js
│ │ │ └── autocomplete.less
│ │ ├── badge
│ │ │ ├── badge-ios.less
│ │ │ ├── badge-md.less
│ │ │ ├── badge.js
│ │ │ └── badge.less
│ │ ├── block
│ │ │ ├── block-ios.less
│ │ │ ├── block-md.less
│ │ │ ├── block.js
│ │ │ └── block.less
│ │ ├── button
│ │ │ ├── button-ios.less
│ │ │ ├── button-md.less
│ │ │ ├── button.js
│ │ │ └── button.less
│ │ ├── calendar
│ │ │ ├── calendar-class.js
│ │ │ ├── calendar-ios.less
│ │ │ ├── calendar-md.less
│ │ │ ├── calendar.js
│ │ │ └── calendar.less
│ │ ├── card
│ │ │ ├── card-ios.less
│ │ │ ├── card-md.less
│ │ │ ├── card.js
│ │ │ └── card.less
│ │ ├── checkbox
│ │ │ ├── checkbox-ios.less
│ │ │ ├── checkbox-md.less
│ │ │ ├── checkbox.js
│ │ │ └── checkbox.less
│ │ ├── chip
│ │ │ ├── chip-ios.less
│ │ │ ├── chip-md.less
│ │ │ ├── chip.js
│ │ │ └── chip.less
│ │ ├── contacts-list
│ │ │ ├── contact-list.js
│ │ │ ├── contacts-list-ios.less
│ │ │ ├── contacts-list-md.less
│ │ │ └── contacts-list.less
│ │ ├── core
│ │ │ ├── core-class.js
│ │ │ ├── core-ios.less
│ │ │ ├── core-md.less
│ │ │ └── core.less
│ │ ├── data-table
│ │ │ ├── data-table-class.js
│ │ │ ├── data-table-ios.less
│ │ │ ├── data-table-md.less
│ │ │ ├── data-table.js
│ │ │ └── data-table.less
│ │ ├── dialog
│ │ │ ├── dialog-class.js
│ │ │ ├── dialog-ios.less
│ │ │ ├── dialog-md.less
│ │ │ ├── dialog.js
│ │ │ └── dialog.less
│ │ ├── fab
│ │ │ ├── fab-ios.less
│ │ │ ├── fab-md.less
│ │ │ ├── fab.js
│ │ │ └── fab.less
│ │ ├── form
│ │ │ └── form.js
│ │ ├── grid
│ │ │ ├── grid-ios.less
│ │ │ ├── grid-md.less
│ │ │ ├── grid.js
│ │ │ └── grid.less
│ │ ├── icon
│ │ │ ├── icon-ios.less
│ │ │ ├── icon-md.less
│ │ │ ├── icon.js
│ │ │ └── icon.less
│ │ ├── infinite-scroll
│ │ │ ├── infinite-scroll-ios.less
│ │ │ ├── infinite-scroll-md.less
│ │ │ ├── infinite-scroll.js
│ │ │ └── infinite-scroll.less
│ │ ├── input
│ │ │ ├── input-ios.less
│ │ │ ├── input-md.less
│ │ │ ├── input.js
│ │ │ └── input.less
│ │ ├── lazy
│ │ │ ├── lazy-ios.less
│ │ │ ├── lazy-md.less
│ │ │ ├── lazy.js
│ │ │ └── lazy.less
│ │ ├── link
│ │ │ ├── link-ios.less
│ │ │ ├── link-md.less
│ │ │ ├── link.js
│ │ │ └── link.less
│ │ ├── list-index
│ │ │ ├── list-index-class.js
│ │ │ ├── list-index-ios.less
│ │ │ ├── list-index-md.less
│ │ │ ├── list-index.js
│ │ │ └── list-index.less
│ │ ├── list
│ │ │ ├── list-ios.less
│ │ │ ├── list-md.less
│ │ │ ├── list.js
│ │ │ └── list.less
│ │ ├── login-screen
│ │ │ ├── login-screen-class.js
│ │ │ ├── login-screen-ios.less
│ │ │ ├── login-screen-md.less
│ │ │ ├── login-screen.js
│ │ │ └── login-screen.less
│ │ ├── messagebar
│ │ │ ├── messagebar-class.js
│ │ │ ├── messagebar-ios.less
│ │ │ ├── messagebar-md.less
│ │ │ ├── messagebar.js
│ │ │ └── messagebar.less
│ │ ├── messages
│ │ │ ├── messages-class.js
│ │ │ ├── messages-ios.less
│ │ │ ├── messages-md.less
│ │ │ ├── messages.js
│ │ │ └── messages.less
│ │ ├── modal
│ │ │ ├── custom-modal-class.js
│ │ │ ├── modal-class.js
│ │ │ ├── modal.js
│ │ │ └── modal.less
│ │ ├── navbar
│ │ │ ├── navbar-ios.less
│ │ │ ├── navbar-md.less
│ │ │ ├── navbar.js
│ │ │ └── navbar.less
│ │ ├── notification
│ │ │ ├── notification-class.js
│ │ │ ├── notification-ios.less
│ │ │ ├── notification-md.less
│ │ │ ├── notification.js
│ │ │ └── notification.less
│ │ ├── page
│ │ │ ├── page-ios.less
│ │ │ ├── page-md.less
│ │ │ ├── page.js
│ │ │ └── page.less
│ │ ├── panel
│ │ │ ├── panel-class.js
│ │ │ ├── panel-ios.less
│ │ │ ├── panel-md.less
│ │ │ ├── panel.js
│ │ │ ├── panel.less
│ │ │ └── swipe-panel.js
│ │ ├── photo-browser
│ │ │ ├── photo-browser-class.js
│ │ │ ├── photo-browser-ios.less
│ │ │ ├── photo-browser-md.less
│ │ │ ├── photo-browser.js
│ │ │ └── photo-browser.less
│ │ ├── picker
│ │ │ ├── picker-class.js
│ │ │ ├── picker-column.js
│ │ │ ├── picker-ios.less
│ │ │ ├── picker-md.less
│ │ │ ├── picker.js
│ │ │ └── picker.less
│ │ ├── popover
│ │ │ ├── popover-class.js
│ │ │ ├── popover-ios.less
│ │ │ ├── popover-md.less
│ │ │ ├── popover.js
│ │ │ └── popover.less
│ │ ├── popup
│ │ │ ├── popup-class.js
│ │ │ ├── popup-ios.less
│ │ │ ├── popup-md.less
│ │ │ ├── popup.js
│ │ │ └── popup.less
│ │ ├── preloader
│ │ │ ├── preloader-ios.less
│ │ │ ├── preloader-md.less
│ │ │ ├── preloader.js
│ │ │ └── preloader.less
│ │ ├── progressbar
│ │ │ ├── progressbar-ios.less
│ │ │ ├── progressbar-md.less
│ │ │ ├── progressbar.js
│ │ │ └── progressbar.less
│ │ ├── pull-to-refresh
│ │ │ ├── pull-to-refresh-class.js
│ │ │ ├── pull-to-refresh-ios.less
│ │ │ ├── pull-to-refresh-md.less
│ │ │ ├── pull-to-refresh.js
│ │ │ └── pull-to-refresh.less
│ │ ├── radio
│ │ │ ├── radio-ios.less
│ │ │ ├── radio-md.less
│ │ │ ├── radio.js
│ │ │ └── radio.less
│ │ ├── range
│ │ │ ├── range-class.js
│ │ │ ├── range-ios.less
│ │ │ ├── range-md.less
│ │ │ ├── range.js
│ │ │ └── range.less
│ │ ├── searchbar
│ │ │ ├── searchbar-class.js
│ │ │ ├── searchbar-ios.less
│ │ │ ├── searchbar-md.less
│ │ │ ├── searchbar.js
│ │ │ └── searchbar.less
│ │ ├── sheet
│ │ │ ├── sheet-class.js
│ │ │ ├── sheet-ios.less
│ │ │ ├── sheet-md.less
│ │ │ ├── sheet.js
│ │ │ └── sheet.less
│ │ ├── smart-select
│ │ │ ├── smart-select-class.js
│ │ │ ├── smart-select-ios.less
│ │ │ ├── smart-select-md.less
│ │ │ ├── smart-select.js
│ │ │ └── smart-select.less
│ │ ├── sortable
│ │ │ ├── sortable-ios.less
│ │ │ ├── sortable-md.less
│ │ │ ├── sortable.js
│ │ │ └── sortable.less
│ │ ├── statusbar
│ │ │ ├── statusbar-ios.less
│ │ │ ├── statusbar-md.less
│ │ │ ├── statusbar.js
│ │ │ └── statusbar.less
│ │ ├── stepper
│ │ │ ├── stepper-class.js
│ │ │ ├── stepper-ios.less
│ │ │ ├── stepper-md.less
│ │ │ ├── stepper.js
│ │ │ └── stepper.less
│ │ ├── subnavbar
│ │ │ ├── subnavbar-ios.less
│ │ │ ├── subnavbar-md.less
│ │ │ ├── subnavbar.js
│ │ │ └── subnavbar.less
│ │ ├── swipeout
│ │ │ ├── swipeout-ios.less
│ │ │ ├── swipeout-md.less
│ │ │ ├── swipeout.js
│ │ │ └── swipeout.less
│ │ ├── swiper
│ │ │ ├── swiper-class
│ │ │ │ ├── components
│ │ │ │ │ ├── a11y
│ │ │ │ │ │ ├── a11y.js
│ │ │ │ │ │ └── a11y.less
│ │ │ │ │ ├── autoplay
│ │ │ │ │ │ └── autoplay.js
│ │ │ │ │ ├── controller
│ │ │ │ │ │ ├── controller.js
│ │ │ │ │ │ └── controller.less
│ │ │ │ │ ├── core
│ │ │ │ │ │ ├── breakpoints
│ │ │ │ │ │ │ ├── getBreakpoint.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ └── setBreakpoint.js
│ │ │ │ │ │ ├── check-overflow
│ │ │ │ │ │ │ └── index.js
│ │ │ │ │ │ ├── classes
│ │ │ │ │ │ │ ├── addClasses.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ └── removeClasses.js
│ │ │ │ │ │ ├── core-class.js
│ │ │ │ │ │ ├── core.less
│ │ │ │ │ │ ├── defaults.js
│ │ │ │ │ │ ├── events
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── onClick.js
│ │ │ │ │ │ │ ├── onResize.js
│ │ │ │ │ │ │ ├── onTouchEnd.js
│ │ │ │ │ │ │ ├── onTouchMove.js
│ │ │ │ │ │ │ └── onTouchStart.js
│ │ │ │ │ │ ├── grab-cursor
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── setGrabCursor.js
│ │ │ │ │ │ │ └── unsetGrabCursor.js
│ │ │ │ │ │ ├── images
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── loadImage.js
│ │ │ │ │ │ │ └── preloadImages.js
│ │ │ │ │ │ ├── loop
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── loopCreate.js
│ │ │ │ │ │ │ ├── loopDestroy.js
│ │ │ │ │ │ │ └── loopFix.js
│ │ │ │ │ │ ├── manipulation
│ │ │ │ │ │ │ ├── appendSlide.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── prependSlide.js
│ │ │ │ │ │ │ ├── removeAllSlides.js
│ │ │ │ │ │ │ └── removeSlide.js
│ │ │ │ │ │ ├── slide
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── slideNext.js
│ │ │ │ │ │ │ ├── slidePrev.js
│ │ │ │ │ │ │ ├── slideReset.js
│ │ │ │ │ │ │ ├── slideTo.js
│ │ │ │ │ │ │ ├── slideToClickedSlide.js
│ │ │ │ │ │ │ ├── slideToClosest.js
│ │ │ │ │ │ │ └── slideToLoop.js
│ │ │ │ │ │ ├── transition
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── setTransition.js
│ │ │ │ │ │ │ ├── transitionEnd.js
│ │ │ │ │ │ │ └── transitionStart.js
│ │ │ │ │ │ ├── translate
│ │ │ │ │ │ │ ├── getTranslate.js
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── maxTranslate.js
│ │ │ │ │ │ │ ├── minTranslate.js
│ │ │ │ │ │ │ └── setTranslate.js
│ │ │ │ │ │ └── update
│ │ │ │ │ │ │ ├── index.js
│ │ │ │ │ │ │ ├── updateActiveIndex.js
│ │ │ │ │ │ │ ├── updateAutoHeight.js
│ │ │ │ │ │ │ ├── updateClickedSlide.js
│ │ │ │ │ │ │ ├── updateProgress.js
│ │ │ │ │ │ │ ├── updateSize.js
│ │ │ │ │ │ │ ├── updateSlides.js
│ │ │ │ │ │ │ ├── updateSlidesClasses.js
│ │ │ │ │ │ │ ├── updateSlidesOffset.js
│ │ │ │ │ │ │ └── updateSlidesProgress.js
│ │ │ │ │ ├── effect-coverflow
│ │ │ │ │ │ ├── effect-coverflow.js
│ │ │ │ │ │ └── effect-coverflow.less
│ │ │ │ │ ├── effect-cube
│ │ │ │ │ │ ├── effect-cube.js
│ │ │ │ │ │ └── effect-cube.less
│ │ │ │ │ ├── effect-fade
│ │ │ │ │ │ ├── effect-fade.js
│ │ │ │ │ │ └── effect-fade.less
│ │ │ │ │ ├── effect-flip
│ │ │ │ │ │ ├── effect-flip.js
│ │ │ │ │ │ └── effect-flip.less
│ │ │ │ │ ├── hash-navigation
│ │ │ │ │ │ └── hash-navigation.js
│ │ │ │ │ ├── history
│ │ │ │ │ │ └── history.js
│ │ │ │ │ ├── keyboard
│ │ │ │ │ │ └── keyboard.js
│ │ │ │ │ ├── lazy
│ │ │ │ │ │ ├── lazy.js
│ │ │ │ │ │ └── lazy.less
│ │ │ │ │ ├── mousewheel
│ │ │ │ │ │ └── mousewheel.js
│ │ │ │ │ ├── navigation
│ │ │ │ │ │ ├── navigation.js
│ │ │ │ │ │ └── navigation.less
│ │ │ │ │ ├── pagination
│ │ │ │ │ │ ├── pagination.js
│ │ │ │ │ │ └── pagination.less
│ │ │ │ │ ├── parallax
│ │ │ │ │ │ └── parallax.js
│ │ │ │ │ ├── scrollbar
│ │ │ │ │ │ ├── scrollbar.js
│ │ │ │ │ │ └── scrollbar.less
│ │ │ │ │ ├── virtual
│ │ │ │ │ │ └── virtual.js
│ │ │ │ │ └── zoom
│ │ │ │ │ │ ├── zoom.js
│ │ │ │ │ │ └── zoom.less
│ │ │ │ ├── less
│ │ │ │ │ └── mixins.less
│ │ │ │ ├── modules
│ │ │ │ │ ├── browser
│ │ │ │ │ │ └── browser.js
│ │ │ │ │ ├── defaults
│ │ │ │ │ │ └── defaults.js
│ │ │ │ │ ├── device
│ │ │ │ │ │ └── device.js
│ │ │ │ │ ├── observer
│ │ │ │ │ │ └── observer.js
│ │ │ │ │ ├── resize
│ │ │ │ │ │ ├── resize.js
│ │ │ │ │ │ └── resize.less
│ │ │ │ │ └── support
│ │ │ │ │ │ └── support.js
│ │ │ │ ├── swiper.js
│ │ │ │ ├── swiper.less
│ │ │ │ └── utils
│ │ │ │ │ ├── browser.js
│ │ │ │ │ ├── class.js
│ │ │ │ │ ├── device.js
│ │ │ │ │ ├── document.js
│ │ │ │ │ ├── dom.js
│ │ │ │ │ ├── support.js
│ │ │ │ │ ├── utils.js
│ │ │ │ │ └── window.js
│ │ │ ├── swiper-ios.less
│ │ │ ├── swiper-md.less
│ │ │ ├── swiper.js
│ │ │ └── swiper.less
│ │ ├── tabs
│ │ │ ├── tabs-ios.less
│ │ │ ├── tabs-md.less
│ │ │ ├── tabs.js
│ │ │ └── tabs.less
│ │ ├── timeline
│ │ │ ├── timeline-ios.less
│ │ │ ├── timeline-md.less
│ │ │ ├── timeline.js
│ │ │ └── timeline.less
│ │ ├── toast
│ │ │ ├── toast-class.js
│ │ │ ├── toast-ios.less
│ │ │ ├── toast-md.less
│ │ │ ├── toast.js
│ │ │ └── toast.less
│ │ ├── toggle
│ │ │ ├── toggle-class.js
│ │ │ ├── toggle-ios.less
│ │ │ ├── toggle-md.less
│ │ │ ├── toggle.js
│ │ │ └── toggle.less
│ │ ├── toolbar
│ │ │ ├── toolbar-ios.less
│ │ │ ├── toolbar-md.less
│ │ │ ├── toolbar.js
│ │ │ └── toolbar.less
│ │ ├── touch-ripple
│ │ │ ├── touch-ripple-class.js
│ │ │ ├── touch-ripple-ios.less
│ │ │ ├── touch-ripple-md.less
│ │ │ ├── touch-ripple.js
│ │ │ └── touch-ripple.less
│ │ ├── typography
│ │ │ ├── typography-ios.less
│ │ │ ├── typography-md.less
│ │ │ ├── typography.js
│ │ │ └── typography.less
│ │ ├── vi
│ │ │ ├── vi-class.js
│ │ │ ├── vi-ios.less
│ │ │ ├── vi-md.less
│ │ │ ├── vi.js
│ │ │ └── vi.less
│ │ ├── view
│ │ │ ├── view-class.js
│ │ │ ├── view.js
│ │ │ └── view.less
│ │ └── virtual-list
│ │ │ ├── virtual-list-class.js
│ │ │ ├── virtual-list-ios.less
│ │ │ ├── virtual-list-md.less
│ │ │ ├── virtual-list.js
│ │ │ └── virtual-list.less
│ ├── css
│ │ ├── framework7.css
│ │ ├── framework7.ios.css
│ │ ├── framework7.ios.min.css
│ │ ├── framework7.md.css
│ │ ├── framework7.md.min.css
│ │ ├── framework7.min.css
│ │ ├── framework7.rtl.css
│ │ ├── framework7.rtl.ios.css
│ │ ├── framework7.rtl.ios.min.css
│ │ ├── framework7.rtl.md.css
│ │ ├── framework7.rtl.md.min.css
│ │ └── framework7.rtl.min.css
│ ├── framework7.esm.bundle.js
│ ├── framework7.esm.js
│ ├── framework7.less
│ ├── js
│ │ ├── framework7.js
│ │ ├── framework7.min.js
│ │ └── framework7.min.js.map
│ ├── less
│ │ ├── colors-ios.less
│ │ ├── colors-md.less
│ │ ├── mixins.less
│ │ ├── vars-ios.less
│ │ └── vars-md.less
│ ├── modules
│ │ ├── clicks
│ │ │ └── clicks.js
│ │ ├── demo-module.js
│ │ ├── device
│ │ │ └── device.js
│ │ ├── history
│ │ │ └── history.js
│ │ ├── request
│ │ │ └── request.js
│ │ ├── resize
│ │ │ └── resize.js
│ │ ├── router
│ │ │ ├── back.js
│ │ │ ├── clear-history.js
│ │ │ ├── clear-previous-history.js
│ │ │ ├── modal.js
│ │ │ ├── navigate.js
│ │ │ ├── redirect.js
│ │ │ ├── router-class.js
│ │ │ ├── router.js
│ │ │ ├── swipe-back.js
│ │ │ └── tab.js
│ │ ├── storage
│ │ │ └── storage.js
│ │ ├── support
│ │ │ └── support.js
│ │ ├── touch
│ │ │ └── touch.js
│ │ └── utils
│ │ │ └── utils.js
│ └── utils
│ │ ├── bezier.js
│ │ ├── class.js
│ │ ├── component.js
│ │ ├── constructor-methods.js
│ │ ├── device.js
│ │ ├── history.js
│ │ ├── modal-methods.js
│ │ ├── request.js
│ │ ├── support.js
│ │ └── utils.js
│ └── pages
│ ├── 404.html
│ ├── about.html
│ ├── accordion.html
│ ├── action-sheet.html
│ ├── autocomplete.html
│ ├── badge.html
│ ├── buttons.html
│ ├── calendar-page.html
│ ├── calendar.html
│ ├── cards.html
│ ├── checkbox.html
│ ├── chips.html
│ ├── color-themes.html
│ ├── contacts-list.html
│ ├── content-block.html
│ ├── data-table.html
│ ├── dialog.html
│ ├── fab-morph.html
│ ├── fab.html
│ ├── form-storage.html
│ ├── grid.html
│ ├── icons.html
│ ├── infinite-scroll.html
│ ├── inputs.html
│ ├── lazy-load.html
│ ├── list-index.html
│ ├── list.html
│ ├── login-screen-page.html
│ ├── login-screen.html
│ ├── messages.html
│ ├── navbar-hide-scroll.html
│ ├── navbar.html
│ ├── notifications.html
│ ├── page-loader-component.html
│ ├── page-loader-template7.html
│ ├── panel.html
│ ├── photo-browser.html
│ ├── picker.html
│ ├── popover.html
│ ├── popup.html
│ ├── preloader.html
│ ├── progressbar.html
│ ├── pull-to-refresh.html
│ ├── radio.html
│ ├── range.html
│ ├── searchbar-expandable.html
│ ├── searchbar.html
│ ├── sheet-modal.html
│ ├── smart-select.html
│ ├── sortable.html
│ ├── statusbar.html
│ ├── stepper.html
│ ├── subnavbar-title.html
│ ├── subnavbar.html
│ ├── swipeout.html
│ ├── swiper-3d-coverflow.html
│ ├── swiper-3d-cube.html
│ ├── swiper-3d-flip.html
│ ├── swiper-custom-controls.html
│ ├── swiper-fade.html
│ ├── swiper-gallery.html
│ ├── swiper-horizontal.html
│ ├── swiper-lazy.html
│ ├── swiper-loop.html
│ ├── swiper-multiple.html
│ ├── swiper-nested.html
│ ├── swiper-pagination-fraction.html
│ ├── swiper-pagination-progress.html
│ ├── swiper-parallax.html
│ ├── swiper-scrollbar.html
│ ├── swiper-space-between.html
│ ├── swiper-vertical.html
│ ├── swiper-zoom.html
│ ├── swiper.html
│ ├── tabbar-labels.html
│ ├── tabbar-scrollable.html
│ ├── tabbar.html
│ ├── tabs-animated.html
│ ├── tabs-routable.html
│ ├── tabs-static.html
│ ├── tabs-swipeable.html
│ ├── tabs.html
│ ├── timeline-horizontal-calendar.html
│ ├── timeline-horizontal.html
│ ├── timeline-vertical.html
│ ├── timeline.html
│ ├── toast.html
│ ├── toggle.html
│ ├── toolbar-hide-scroll.html
│ ├── toolbar-tabbar.html
│ ├── vi.html
│ └── virtual-list.html
├── package-lock.json
├── package.json
└── test
├── test-creation.js
└── test-load.js
/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | charset = utf-8
9 | trim_trailing_whitespace = true
10 | insert_final_newline = true
11 |
12 | [*.md]
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | temp/
3 | .idea
4 | .DS_Store
5 |
--------------------------------------------------------------------------------
/.jshintrc:
--------------------------------------------------------------------------------
1 | {
2 | "node": true,
3 | "esnext": true,
4 | "bitwise": true,
5 | "camelcase": true,
6 | "curly": true,
7 | "eqeqeq": true,
8 | "immed": true,
9 | "indent": 2,
10 | "latedef": true,
11 | "newcap": true,
12 | "noarg": true,
13 | "quotmark": "single",
14 | "regexp": true,
15 | "undef": true,
16 | "unused": true,
17 | "strict": true,
18 | "trailing": true,
19 | "smarttabs": true,
20 | "white": true
21 | }
22 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - '0.10'
4 | before_install:
5 | - currentfolder=${PWD##*/}
6 | - if [ "$currentfolder" != 'generator-framework7-phonegap' ]; then cd .. && eval "mv $currentfolder generator-framework7-phonegap" && cd generator-framework7-phonegap; fi
7 |
8 |
--------------------------------------------------------------------------------
/app/templates/.npmignore:
--------------------------------------------------------------------------------
1 | # OS X
2 | .DS_Store
3 |
--------------------------------------------------------------------------------
/app/templates/README.md:
--------------------------------------------------------------------------------
1 | # <%= _.camelize(appname) %>
2 |
3 | > A sample Apache Cordova application integrated with Framework7.
4 |
5 | ## App Dev
6 | Like you would any corodova app
7 |
8 | ## Run in browser
9 | First add the browser platform, if not already done so
10 |
11 | ```bash
12 | $ cordova platform ls
13 | $ cordova platform add browser
14 | ```
15 | Run the app in browser
16 | ```bash
17 | $ cordova run browser -- --port=8001
18 | ```
19 |
20 | ## Framework7 Customization
21 | If you would like to customize Framework7, you can do so inside the `/framework7` folder. Once the development is completed and you have build the final distrubtion from inside the `/framework7` folder, you need to copy the contents of `/framework7/dist` folder to `www/lib`. _Contents not the completed folder._
--------------------------------------------------------------------------------
/app/templates/_package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "<%= _.camelize(appname) %>",
3 | "displayName": "<%= _.camelize(appname) %>",
4 | "version": "1.0.0",
5 | "description": "A sample Apache Cordova application integrated with Framework7.",
6 | "main": "index.js",
7 | "scripts": {
8 | "test": "echo \"Error: no test specified\" && exit 1"
9 | },
10 | "author": "Apache Cordova Team",
11 | "license": "Apache-2.0",
12 | "dependencies": {
13 | "cordova-plugin-whitelist": "^1.3.3"
14 | },
15 | "cordova": {
16 | "plugins": {
17 | "cordova-plugin-whitelist": {}
18 | }
19 | }
20 | }
--------------------------------------------------------------------------------
/app/templates/framework7/.editorconfig:
--------------------------------------------------------------------------------
1 | # This file is for unifying the coding style of different editors and IDEs.
2 | # editorconfig.org
3 |
4 | root = true
5 |
6 | [*]
7 | charset = utf-8
8 | end_of_line = lf
9 | indent_size = 2
10 | indent_style = space
11 | insert_final_newline = true
12 | trim_trailing_whitespace = true
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/.eslintignore:
--------------------------------------------------------------------------------
1 | build
2 | .git
3 | .github
4 | custom
5 | dist
6 | kitchen-sink
7 | node_modules
8 | src/framework7.js
9 | src/modules/demo-module.js
10 | src/components/swiper/swiper-class
11 |
--------------------------------------------------------------------------------
/app/templates/framework7/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | build
4 | custom
5 | npm-debug.log
6 | .idea
7 | .vscode
8 | scripts/build-config-custom.js
9 | scripts/build-config-*.js
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/.npmignore:
--------------------------------------------------------------------------------
1 | .git
2 | .github
3 | build
4 | custom
5 | kitchen-sink
6 | kitchen-sink-ios
7 | kitchen-sink-material
8 | node_modules
9 | npm-debug.log
10 | scripts
11 | src
12 | gulpfile.js
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/.travis.yml:
--------------------------------------------------------------------------------
1 | language: node_js
2 | node_js:
3 | - "6"
4 | before_script:
5 | - npm install --global gulp
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/badge/badge-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .badge {
4 | font-size: 13px;
5 | border-radius: 20px;
6 | padding: 0 6px;
7 | height: 20px;
8 | line-height: 20px;
9 | .item-after & {
10 | min-width: 20px;
11 | }
12 | }
13 | .icon, .f7-icons, .framework7-icons, .material-icons {
14 | .badge {
15 | line-height: 16px;
16 | height: 16px;
17 | border-radius: 16px;
18 | padding: 0 4px;
19 | min-width: 16px;
20 | font-family: -apple-system, SF UI Text, Helvetica Neue, Helvetica, Arial, sans-serif;
21 | font-size: 10px;
22 | }
23 | }
24 | .color-loop({
25 | .badge.color-@{colorName} {
26 | background-color: @colorValue;
27 | }
28 | });
29 | }
30 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/badge/badge-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .badge {
4 | font-size: 10px;
5 | border-radius: 3px;
6 | padding: 1px 6px;
7 | vertical-align: middle;
8 | }
9 | .icon, .f7-icons, .framework7-icons, .material-icons {
10 | .badge {
11 | line-height: 1.4;
12 | padding: 1px 5px;
13 | font-family: Roboto, Noto, Helvetica, Arial, sans-serif;
14 | font-size: 10px;
15 | }
16 | }
17 | .color-loop({
18 | .badge.color-@{colorName} {
19 | background-color: @colorValue;
20 | }
21 | });
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/badge/badge.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'badge',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/badge/badge.less:
--------------------------------------------------------------------------------
1 | /* === Badge === */
2 | .badge {
3 | display: inline-block;
4 | color: #fff;
5 | background: #8e8e93;
6 | position: relative;
7 | box-sizing: border-box;
8 | text-align: center;
9 | .icon &, .f7-icons &, .framework7-icons &, .material-icons & {
10 | position: absolute;
11 | left: 100%;
12 | margin-left: -10px;
13 | top: -2px;
14 | }
15 | }
16 |
17 | & when (@includeIosTheme) {
18 | @import url('./badge-ios.less');
19 | }
20 | & when (@includeMdTheme) {
21 | @import url('./badge-md.less');
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/block/block.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'block',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/button/button.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'button',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/card/card.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'card',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/checkbox/checkbox.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'checkbox',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/chip/chip.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'chip',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/contacts-list/contact-list.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'contactList',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/contacts-list/contacts-list-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .contacts-list {
4 | margin: 0;
5 | .list-group-title {
6 | padding: 0 15px;
7 | background: #f7f7f7;
8 | color: #000;
9 | font-weight: 600;
10 | line-height: 22px;
11 | height: 22px;
12 | }
13 | }
14 | // Dark Theme
15 | & when (@includeDarkTheme) {
16 | .theme-dark {
17 | .contacts-list, .contacts-list& {
18 | .list-group-title {
19 | background-color: #111;
20 | color: #fff;
21 | }
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/contacts-list/contacts-list.less:
--------------------------------------------------------------------------------
1 | /* === Contacts === */
2 | .contacts-list {
3 | .list-group:first-child ul {
4 | .hairline-remove(top);
5 | }
6 | .list-group:last-child ul {
7 | .hairline-remove(bottom);
8 | }
9 | }
10 | & when (@includeIosTheme) {
11 | @import url('./contacts-list-ios.less');
12 | }
13 | & when (@includeMdTheme) {
14 | @import url('./contacts-list-md.less');
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/core/core-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | body {
4 | font-family: Roboto, Noto, Helvetica, Arial, sans-serif;
5 | color: #212121;
6 | line-height: 1.5;
7 | }
8 | .ios-only, .if-ios {
9 | display: none !important;
10 | }
11 | a {
12 | color: @themeColor;
13 | }
14 | // Dark Theme
15 | & when (@includeDarkTheme) {
16 | .theme-dark {
17 | color: rgba(255,255,255,0.87);
18 | }
19 | }
20 |
21 | .color-theme-loop({
22 | .color-theme-@{colorThemeName} {
23 | a {
24 | color: @colorThemeValue;
25 | }
26 | }
27 | });
28 | .color-loop({
29 | a.color-@{colorName} {
30 | color: @colorValue;
31 | }
32 | });
33 | }
34 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/grid/grid.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'grid',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/grid/grid.less:
--------------------------------------------------------------------------------
1 | /* === Grid === */
2 | .row {
3 | display: flex;
4 | justify-content: space-between;
5 | flex-wrap: wrap;
6 | align-items: flex-start;
7 | > [class*="col-"], > .col {
8 | box-sizing: border-box;
9 | }
10 | }
11 | @cols: 5, 10, 15, 20, 25, 30, 100/3, 35, 40, 45, 50, 55, 60, 65, 100*(2/3), 70, 75, 80, 85, 90, 95, 100;
12 | .row {
13 | .col {
14 | width: 100%;
15 | }
16 | }
17 |
18 | & when (@includeIosTheme) {
19 | @import url('./grid-ios.less');
20 | }
21 | & when (@includeMdTheme) {
22 | @import url('./grid-md.less');
23 | }
24 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/icon/icon.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'icon',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/icon/icon.less:
--------------------------------------------------------------------------------
1 | /* === Icon === */
2 | i.icon {
3 | display: inline-block;
4 | vertical-align: middle;
5 | background-size: 100% auto;
6 | background-position: center;
7 | background-repeat: no-repeat;
8 | font-style: normal;
9 | position: relative;
10 | }
11 |
12 | & when (@includeIosTheme) {
13 | @import url('./icon-ios.less');
14 | }
15 | & when (@includeMdTheme) {
16 | @import url('./icon-md.less');
17 | }
18 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/infinite-scroll/infinite-scroll-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | .infinite-scroll-preloader {
5 | margin-top: 35px;
6 | margin-bottom: 35px;
7 | .preloader, &.preloader {
8 | width: 27px;
9 | height: 27px;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/infinite-scroll/infinite-scroll-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .infinite-scroll-preloader {
4 | margin-top: 32px;
5 | margin-bottom: 32px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/infinite-scroll/infinite-scroll.less:
--------------------------------------------------------------------------------
1 | /* === Infinite === */
2 | .infinite-scroll-preloader {
3 | margin-left: auto;
4 | margin-right: auto;
5 | text-align: center;
6 | &.preloader {
7 | display: block;
8 | }
9 | }
10 | & when (@includeIosTheme) {
11 | @import url('./infinite-scroll-ios.less');
12 | }
13 | & when (@includeMdTheme) {
14 | @import url('./infinite-scroll-md.less');
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/lazy/lazy-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/lazy/lazy-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/lazy/lazy.less:
--------------------------------------------------------------------------------
1 | /* === Images Lazy Loading === */
2 | .lazy-loaded.lazy-fade-in {
3 | animation: lazyFadeIn 600ms;
4 | }
5 |
6 | @keyframes lazyFadeIn {
7 | from {
8 | opacity: 0;
9 | }
10 | to {
11 | opacity: 1;
12 | }
13 | }
14 |
15 | & when (@includeIosTheme) {
16 | @import url('./lazy-ios.less');
17 | }
18 | & when (@includeMdTheme) {
19 | @import url('./lazy-md.less');
20 | }
21 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/link/link-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | .link {
3 | transition: opacity 300ms;
4 | i + span, i + i, span + i, span + span {
5 | .ltr({
6 | margin-left: 7px;
7 | });
8 | .rtl({
9 | margin-right: 7px;
10 | });
11 | }
12 | &.active-state {
13 | opacity: 0.3;
14 | transition-duration: 0ms;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/link/link-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | .link {
3 | i + span, i + i, span + i, span + span {
4 | .ltr({
5 | margin-left: 8px;
6 | });
7 | .rtl({
8 | margin-right: 8px;
9 | });
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/link/link.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'link',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/link/link.less:
--------------------------------------------------------------------------------
1 | /* === Link === */
2 | .link, .tab-link {
3 | display: inline-flex;
4 | align-items: center;
5 | align-content: center;
6 | justify-content: center;
7 | position: relative;
8 | box-sizing: border-box;
9 | transform: translate3d(0, 0, 0);
10 | z-index: 1;
11 | }
12 |
13 | & when (@includeIosTheme) {
14 | @import url('./link-ios.less');
15 | }
16 | & when (@includeMdTheme) {
17 | @import url('./link-md.less');
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/list/list.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'list',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/login-screen/login-screen-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .login-screen-content {
4 | .login-screen-title, .list, .block {
5 | margin: 25px auto;
6 | }
7 | }
8 | .login-screen-title {
9 | font-size: 30px;
10 | }
11 | // Dark Theme
12 | & when (@includeDarkTheme) {
13 | .theme-dark {
14 | .login-screen-content, .login-screen-content .list ul {
15 | background-color: transparent;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/login-screen/login-screen.js:
--------------------------------------------------------------------------------
1 | import LoginScreen from './login-screen-class';
2 | import ModalMethods from '../../utils/modal-methods';
3 |
4 | export default {
5 | name: 'loginScreen',
6 | static: {
7 | LoginScreen,
8 | },
9 | create() {
10 | const app = this;
11 | app.loginScreen = ModalMethods({
12 | app,
13 | constructor: LoginScreen,
14 | defaultSelector: '.login-screen.modal-in',
15 | });
16 | },
17 | clicks: {
18 | '.login-screen-open': function openLoginScreen($clickedEl, data = {}) {
19 | const app = this;
20 | app.loginScreen.open(data.loginScreen, data.animate);
21 | },
22 | '.login-screen-close': function closeLoginScreen($clickedEl, data = {}) {
23 | const app = this;
24 | app.loginScreen.close(data.loginScreen, data.animate);
25 | },
26 | },
27 | };
28 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/modal/modal.js:
--------------------------------------------------------------------------------
1 | import Modal from './modal-class';
2 | import CustomModal from './custom-modal-class';
3 |
4 | export default {
5 | name: 'modal',
6 | static: {
7 | Modal,
8 | CustomModal,
9 | },
10 | create() {
11 | const app = this;
12 | app.customModal = {
13 | create(params) {
14 | return new CustomModal(app, params);
15 | },
16 | };
17 | },
18 | params: {
19 | modal: {
20 | moveToRoot: true,
21 | queueDialogs: true,
22 | },
23 | },
24 | };
25 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/modal/modal.less:
--------------------------------------------------------------------------------
1 | .custom-modal-backdrop {
2 | .modal-backdrop();
3 | z-index: 10500;
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/page/page.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'page',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/page/page.less:
--------------------------------------------------------------------------------
1 | /* === Pages === */
2 | .pages {
3 | position: relative;
4 | width: 100%;
5 | height: 100%;
6 | overflow: hidden;
7 | }
8 | .page {
9 | box-sizing: border-box;
10 | position: absolute;
11 | left: 0;
12 | top: 0;
13 | width: 100%;
14 | height: 100%;
15 | transform: translate3d(0,0,0);
16 | &.stacked {
17 | display: none;
18 | }
19 | }
20 | .page-previous {
21 | pointer-events: none;
22 | }
23 | .page-content {
24 | .scrollable();
25 | box-sizing: border-box;
26 | height: 100%;
27 | position: relative;
28 | z-index: 1;
29 | }
30 |
31 | & when (@includeIosTheme) {
32 | @import url('./page-ios.less');
33 | }
34 | & when (@includeMdTheme) {
35 | @import url('./page-md.less');
36 | }
37 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/panel/panel-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .panel-backdrop {
4 | transition-duration: 400ms;
5 | background: rgba(0,0,0,0);
6 | }
7 | .panel {
8 | transition-duration: 400ms;
9 | }
10 | &.with-panel-left-reveal, &.with-panel-right-reveal, &.with-panel-transitioning {
11 | .views, .framework7-root > .view {
12 | transition-duration: 400ms;
13 | transition-property: transform;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/popup/popup-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/popup/popup-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | @media (min-width: 630px) and (min-height: 630px) {
4 | .popup:not(.popup-tablet-fullscreen) {
5 | box-shadow: 0px 20px 44px rgba(0,0,0,0.5);
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/popup/popup.js:
--------------------------------------------------------------------------------
1 | import Popup from './popup-class';
2 | import ModalMethods from '../../utils/modal-methods';
3 |
4 | export default {
5 | name: 'popup',
6 | params: {
7 | popup: {
8 | backdrop: true,
9 | closeByBackdropClick: true,
10 | },
11 | },
12 | static: {
13 | Popup,
14 | },
15 | create() {
16 | const app = this;
17 | app.popup = ModalMethods({
18 | app,
19 | constructor: Popup,
20 | defaultSelector: '.popup.modal-in',
21 | });
22 | },
23 | clicks: {
24 | '.popup-open': function openPopup($clickedEl, data = {}) {
25 | const app = this;
26 | app.popup.open(data.popup, data.animate);
27 | },
28 | '.popup-close': function closePopup($clickedEl, data = {}) {
29 | const app = this;
30 | app.popup.close(data.popup, data.animate);
31 | },
32 | },
33 | };
34 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/preloader/preloader.less:
--------------------------------------------------------------------------------
1 | /* === Preloader === */
2 | .preloader {
3 | display: inline-block;
4 | vertical-align: middle;
5 | }
6 |
7 | /* === Preloader Modal === */
8 | .preloader-backdrop {
9 | .modal-backdrop();
10 | visibility: visible;
11 | opacity: 0;
12 | background: none;
13 | }
14 | .preloader-modal {
15 | position: absolute;
16 | left: 50%;
17 | top: 50%;
18 | padding: 8px;
19 | background: rgba(0,0,0,0.8);
20 | z-index: 13500;
21 | transform: translateX(-50%) translateY(-50%);
22 | .preloader {
23 | display: block !important;
24 | }
25 | }
26 | html.with-modal-preloader {
27 | .page-content {
28 | .not-scrollable();
29 | }
30 | }
31 | & when (@includeIosTheme) {
32 | @import url('./preloader-ios.less');
33 | }
34 | & when (@includeMdTheme) {
35 | @import url('./preloader-md.less');
36 | }
37 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/pull-to-refresh/pull-to-refresh.less:
--------------------------------------------------------------------------------
1 | /* === PTR === */
2 | .ptr-preloader {
3 | .preloader {
4 | position: absolute;
5 | left: 50%;
6 | }
7 | }
8 | & when (@includeIosTheme) {
9 | @import url('./pull-to-refresh-ios.less');
10 | }
11 | & when (@includeMdTheme) {
12 | @import url('./pull-to-refresh-md.less');
13 | }
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/radio/radio.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'radio',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/smart-select/smart-select-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | @import (multiple) '../../less/vars-ios.less';
4 | .smart-select-sheet {
5 | .page {
6 | background: #fff;
7 | }
8 | }
9 | .hairline-root('.smart-select-sheet .toolbar', bottom, @barsBorderColor);
10 | // Dark Theme
11 | & when (@includeDarkTheme) {
12 | .theme-dark {
13 | .smart-select-sheet .page,
14 | .smart-select-sheet .sheet-modal-inner {
15 | background-color: @blockBgDark;
16 | }
17 | .smart-select-sheet .toolbar {
18 | .hairline-color(bottom, @barsBorderColorDark);
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/smart-select/smart-select-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | // Dark Theme
4 | & when (@includeDarkTheme) {
5 | .theme-dark {
6 | .sheet-modal.smart-select-sheet .sheet-modal-inner {
7 | background-color: transparent;
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/smart-select/smart-select.less:
--------------------------------------------------------------------------------
1 | /* === Smart Select === */
2 | .smart-select {
3 | select {
4 | display: none;
5 | }
6 | .item-after {
7 | max-width: 70%;
8 | overflow: hidden;
9 | text-overflow: ellipsis;
10 | position: relative;
11 | display: block;
12 | }
13 |
14 | }
15 | .sheet-modal.smart-select-sheet {
16 | .sheet-modal-inner {
17 | background: #fff;
18 | }
19 | .list {
20 | margin: 0;
21 | ul {
22 | .hairline-remove(top);
23 | .hairline-remove(bottom);
24 | }
25 | }
26 | }
27 | .smart-select-popover .popover-inner {
28 | max-height: 40vh;
29 | }
30 | & when (@includeIosTheme) {
31 | @import url('./smart-select-ios.less');
32 | }
33 | & when (@includeMdTheme) {
34 | @import url('./smart-select-md.less');
35 | }
36 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/statusbar/statusbar-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | @import (multiple) '../../less/vars-ios.less';
4 | .statusbar {
5 | background: #f7f7f8;
6 | }
7 | // Dark Theme
8 | & when (@includeDarkTheme) {
9 | .theme-dark {
10 | .statusbar {
11 | background-color: @barsBgDark;
12 | }
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/statusbar/statusbar-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .statusbar {
4 | background: darken(@themeColor, 15%);
5 | }
6 | .color-theme-loop({
7 | .color-theme-@{colorThemeName} .statusbar {
8 | background: darken(@colorThemeValue, 15%);
9 | }
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/subnavbar/subnavbar.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'subnavbar',
3 | on: {
4 | pageInit(page) {
5 | if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {
6 | page.$el.addClass('page-with-subnavbar');
7 | }
8 | if (page.$el.find('.subnavbar').length) {
9 | page.$el.addClass('page-with-subnavbar');
10 | }
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swipeout/swipeout-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .swipeout-actions-left, .swipeout-actions-right {
4 | > a, > button, > span, > div {
5 | padding: 0 30px;
6 | color: #fff;
7 | }
8 | .swipeout-delete {
9 | background: @red;
10 | }
11 | }
12 | .color-loop({
13 | .swipeout-actions-left, .swipeout-actions-right {
14 | > a, > button, > span, > div {
15 | &.color-@{colorName} {
16 | background-color: @colorValue;
17 | }
18 | }
19 | }
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swipeout/swipeout-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .swipeout-actions-left, .swipeout-actions-right {
4 | > a, > button, > span, > div {
5 | padding: 0 24px;
6 | color: #fff;
7 | }
8 | .swipeout-delete {
9 | background: @red;
10 | }
11 | }
12 | .color-loop({
13 | .swipeout-actions-left, .swipeout-actions-right {
14 | > a, > button, > span, > div {
15 | &.color-@{colorName} {
16 | background-color: @colorValue;
17 | }
18 | }
19 | }
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/a11y/a11y.less:
--------------------------------------------------------------------------------
1 | /* a11y */
2 | .swiper-container .swiper-notification {
3 | position: absolute;
4 | left: 0;
5 | top: 0;
6 | pointer-events: none;
7 | opacity: 0;
8 | z-index: -1000;
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/controller/controller.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/dist/components/swiper/swiper-class/components/controller/controller.less
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/breakpoints/getBreakpoint.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | export default function (breakpoints) {
4 | // Get breakpoint for window width
5 | if (!breakpoints) return undefined;
6 | let breakpoint = false;
7 | const points = [];
8 | Object.keys(breakpoints).forEach((point) => {
9 | points.push(point);
10 | });
11 | points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
12 | for (let i = 0; i < points.length; i += 1) {
13 | const point = points[i];
14 | if (point >= window.innerWidth && !breakpoint) {
15 | breakpoint = point;
16 | }
17 | }
18 | return breakpoint || 'max';
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/breakpoints/index.js:
--------------------------------------------------------------------------------
1 | import setBreakpoint from './setBreakpoint';
2 | import getBreakpoint from './getBreakpoint';
3 |
4 | export default { setBreakpoint, getBreakpoint };
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/check-overflow/index.js:
--------------------------------------------------------------------------------
1 |
2 | function checkOverflow() {
3 | const swiper = this;
4 | const wasLocked = swiper.isLocked;
5 |
6 | swiper.isLocked = swiper.snapGrid.length === 1;
7 | swiper.allowSlideNext = !swiper.isLocked;
8 | swiper.allowSlidePrev = !swiper.isLocked;
9 |
10 | // events
11 | if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
12 |
13 | if (wasLocked && wasLocked !== swiper.isLocked) {
14 | swiper.isEnd = false;
15 | swiper.navigation.update();
16 | }
17 | }
18 |
19 | export default { checkOverflow };
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/classes/index.js:
--------------------------------------------------------------------------------
1 | import addClasses from './addClasses';
2 | import removeClasses from './removeClasses';
3 |
4 | export default { addClasses, removeClasses };
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/classes/removeClasses.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const { $el, classNames } = swiper;
4 |
5 | $el.removeClass(classNames.join(' '));
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/events/onClick.js:
--------------------------------------------------------------------------------
1 | export default function (e) {
2 | const swiper = this;
3 | if ("universal" === 'desktop') {
4 | swiper.emit('tap click', e);
5 | } else if (!swiper.allowClick) {
6 | if (swiper.params.preventClicks) e.preventDefault();
7 | if (swiper.params.preventClicksPropagation && swiper.animating) {
8 | e.stopPropagation();
9 | e.stopImmediatePropagation();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/grab-cursor/index.js:
--------------------------------------------------------------------------------
1 | import setGrabCursor from './setGrabCursor';
2 | import unsetGrabCursor from './unsetGrabCursor';
3 |
4 | export default {
5 | setGrabCursor,
6 | unsetGrabCursor,
7 | };
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/grab-cursor/setGrabCursor.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (moving) {
4 | const swiper = this;
5 | if (Support.touch || !swiper.params.simulateTouch) return;
6 | const el = swiper.el;
7 | el.style.cursor = 'move';
8 | el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';
9 | el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';
10 | el.style.cursor = moving ? 'grabbing' : 'grab';
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/grab-cursor/unsetGrabCursor.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function () {
4 | const swiper = this;
5 | if (Support.touch) return;
6 | swiper.el.style.cursor = '';
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/images/index.js:
--------------------------------------------------------------------------------
1 | import loadImage from './loadImage';
2 | import preloadImages from './preloadImages';
3 |
4 | export default {
5 | loadImage,
6 | preloadImages,
7 | };
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/images/loadImage.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | export default function (imageEl, src, srcset, sizes, checkForComplete, callback) {
4 | let image;
5 | function onReady() {
6 | if (callback) callback();
7 | }
8 | if (!imageEl.complete || !checkForComplete) {
9 | if (src) {
10 | image = new window.Image();
11 | image.onload = onReady;
12 | image.onerror = onReady;
13 | if (sizes) {
14 | image.sizes = sizes;
15 | }
16 | if (srcset) {
17 | image.srcset = srcset;
18 | }
19 | if (src) {
20 | image.src = src;
21 | }
22 | } else {
23 | onReady();
24 | }
25 | } else {
26 | // image already loaded...
27 | onReady();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/loop/index.js:
--------------------------------------------------------------------------------
1 | import loopCreate from './loopCreate';
2 | import loopFix from './loopFix';
3 | import loopDestroy from './loopDestroy';
4 |
5 | export default {
6 | loopCreate,
7 | loopFix,
8 | loopDestroy,
9 | };
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/loop/loopDestroy.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const { $wrapperEl, params, slides } = swiper;
4 | $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
5 | slides.removeAttr('data-swiper-slide-index');
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/manipulation/appendSlide.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (slides) {
4 | const swiper = this;
5 | const { $wrapperEl, params } = swiper;
6 | if (params.loop) {
7 | swiper.loopDestroy();
8 | }
9 | if (typeof slides === 'object' && 'length' in slides) {
10 | for (let i = 0; i < slides.length; i += 1) {
11 | if (slides[i]) $wrapperEl.append(slides[i]);
12 | }
13 | } else {
14 | $wrapperEl.append(slides);
15 | }
16 | if (params.loop) {
17 | swiper.loopCreate();
18 | }
19 | if (!(params.observer && Support.observer)) {
20 | swiper.update();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/manipulation/index.js:
--------------------------------------------------------------------------------
1 | import appendSlide from './appendSlide';
2 | import prependSlide from './prependSlide';
3 | import removeSlide from './removeSlide';
4 | import removeAllSlides from './removeAllSlides';
5 |
6 | export default {
7 | appendSlide,
8 | prependSlide,
9 | removeSlide,
10 | removeAllSlides,
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/manipulation/prependSlide.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (slides) {
4 | const swiper = this;
5 | const { params, $wrapperEl, activeIndex } = swiper;
6 |
7 | if (params.loop) {
8 | swiper.loopDestroy();
9 | }
10 | let newActiveIndex = activeIndex + 1;
11 | if (typeof slides === 'object' && 'length' in slides) {
12 | for (let i = 0; i < slides.length; i += 1) {
13 | if (slides[i]) $wrapperEl.prepend(slides[i]);
14 | }
15 | newActiveIndex = activeIndex + slides.length;
16 | } else {
17 | $wrapperEl.prepend(slides);
18 | }
19 | if (params.loop) {
20 | swiper.loopCreate();
21 | }
22 | if (!(params.observer && Support.observer)) {
23 | swiper.update();
24 | }
25 | swiper.slideTo(newActiveIndex, 0, false);
26 | }
27 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/manipulation/removeAllSlides.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 |
4 | const slidesIndexes = [];
5 | for (let i = 0; i < swiper.slides.length; i += 1) {
6 | slidesIndexes.push(i);
7 | }
8 | swiper.removeSlide(slidesIndexes);
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/slide/index.js:
--------------------------------------------------------------------------------
1 | import slideTo from './slideTo';
2 | import slideToLoop from './slideToLoop';
3 | import slideNext from './slideNext';
4 | import slidePrev from './slidePrev';
5 | import slideReset from './slideReset';
6 | import slideToClosest from './slideToClosest';
7 | import slideToClickedSlide from './slideToClickedSlide';
8 |
9 | export default {
10 | slideTo,
11 | slideToLoop,
12 | slideNext,
13 | slidePrev,
14 | slideReset,
15 | slideToClosest,
16 | slideToClickedSlide,
17 | };
18 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/slide/slideNext.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | const { params, animating } = swiper;
5 | if (params.loop) {
6 | if (animating) return false;
7 | swiper.loopFix();
8 | // eslint-disable-next-line
9 | swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
10 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
11 | }
12 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
13 | }
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/slide/slideReset.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
5 | }
6 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/slide/slideToClosest.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | let index = swiper.activeIndex;
5 | const snapIndex = Math.floor(index / swiper.params.slidesPerGroup);
6 |
7 | if (snapIndex < swiper.snapGrid.length - 1) {
8 | const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
9 |
10 | const currentSnap = swiper.snapGrid[snapIndex];
11 | const nextSnap = swiper.snapGrid[snapIndex + 1];
12 |
13 | if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {
14 | index = swiper.params.slidesPerGroup;
15 | }
16 | }
17 |
18 | return swiper.slideTo(index, speed, runCallbacks, internal);
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/slide/slideToLoop.js:
--------------------------------------------------------------------------------
1 | export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {
2 | const swiper = this;
3 | let newIndex = index;
4 | if (swiper.params.loop) {
5 | newIndex += swiper.loopedSlides;
6 | }
7 |
8 | return swiper.slideTo(newIndex, speed, runCallbacks, internal);
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/transition/index.js:
--------------------------------------------------------------------------------
1 | import setTransition from './setTransition';
2 | import transitionStart from './transitionStart';
3 | import transitionEnd from './transitionEnd';
4 |
5 | export default {
6 | setTransition,
7 | transitionStart,
8 | transitionEnd,
9 | };
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/transition/setTransition.js:
--------------------------------------------------------------------------------
1 | export default function (duration, byController) {
2 | const swiper = this;
3 |
4 | swiper.$wrapperEl.transition(duration);
5 |
6 | swiper.emit('setTransition', duration, byController);
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/translate/getTranslate.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../../utils/utils';
2 |
3 | export default function (axis = this.isHorizontal() ? 'x' : 'y') {
4 | const swiper = this;
5 |
6 | const {
7 | params, rtlTranslate: rtl, translate, $wrapperEl,
8 | } = swiper;
9 |
10 | if (params.virtualTranslate) {
11 | return rtl ? -translate : translate;
12 | }
13 |
14 | let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);
15 | if (rtl) currentTranslate = -currentTranslate;
16 |
17 | return currentTranslate || 0;
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/translate/index.js:
--------------------------------------------------------------------------------
1 | import getTranslate from './getTranslate';
2 | import setTranslate from './setTranslate';
3 | import minTranslate from './minTranslate';
4 | import maxTranslate from './maxTranslate';
5 |
6 | export default {
7 | getTranslate,
8 | setTranslate,
9 | minTranslate,
10 | maxTranslate,
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/translate/maxTranslate.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return (-this.snapGrid[this.snapGrid.length - 1]);
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/translate/minTranslate.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return (-this.snapGrid[0]);
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/update/index.js:
--------------------------------------------------------------------------------
1 | import updateSize from './updateSize';
2 | import updateSlides from './updateSlides';
3 | import updateAutoHeight from './updateAutoHeight';
4 | import updateSlidesOffset from './updateSlidesOffset';
5 | import updateSlidesProgress from './updateSlidesProgress';
6 | import updateProgress from './updateProgress';
7 | import updateSlidesClasses from './updateSlidesClasses';
8 | import updateActiveIndex from './updateActiveIndex';
9 | import updateClickedSlide from './updateClickedSlide';
10 |
11 | export default {
12 | updateSize,
13 | updateSlides,
14 | updateAutoHeight,
15 | updateSlidesOffset,
16 | updateSlidesProgress,
17 | updateProgress,
18 | updateSlidesClasses,
19 | updateActiveIndex,
20 | updateClickedSlide,
21 | };
22 |
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/core/update/updateSlidesOffset.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const slides = swiper.slides;
4 | for (let i = 0; i < slides.length; i += 1) {
5 | slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/effect-coverflow/effect-coverflow.less:
--------------------------------------------------------------------------------
1 | .swiper-container-coverflow {
2 | .swiper-wrapper {
3 | /* Windows 8 IE 10 fix */
4 | -ms-perspective: 1200px;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/effect-fade/effect-fade.less:
--------------------------------------------------------------------------------
1 | .swiper-container-fade {
2 | &.swiper-container-free-mode {
3 | .swiper-slide {
4 | transition-timing-function: ease-out;
5 | }
6 | }
7 | .swiper-slide {
8 | pointer-events: none;
9 | transition-property: opacity;
10 | .swiper-slide {
11 | pointer-events: none;
12 | }
13 | }
14 | .swiper-slide-active {
15 | &, & .swiper-slide-active {
16 | pointer-events: auto;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/effect-flip/effect-flip.less:
--------------------------------------------------------------------------------
1 | .swiper-container-flip {
2 | overflow: visible;
3 | .swiper-slide {
4 | pointer-events: none;
5 | backface-visibility: hidden;
6 | z-index: 1;
7 | .swiper-slide {
8 | pointer-events: none;
9 | }
10 | }
11 | .swiper-slide-active {
12 | &, & .swiper-slide-active {
13 | pointer-events: auto;
14 | }
15 | }
16 | .swiper-slide-shadow-top, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left, .swiper-slide-shadow-right {
17 | z-index: 0;
18 | backface-visibility: hidden;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/scrollbar/scrollbar.less:
--------------------------------------------------------------------------------
1 | /* Scrollbar */
2 | .swiper-scrollbar {
3 | border-radius: 10px;
4 | position: relative;
5 | -ms-touch-action: none;
6 | background: rgba(0,0,0,0.1);
7 | .swiper-container-horizontal > & {
8 | position: absolute;
9 | left: 1%;
10 | bottom: 3px;
11 | z-index: 50;
12 | height: 5px;
13 | width: 98%;
14 | }
15 | .swiper-container-vertical > & {
16 | position: absolute;
17 | right: 3px;
18 | top: 1%;
19 | z-index: 50;
20 | width: 5px;
21 | height: 98%;
22 | }
23 | }
24 | .swiper-scrollbar-drag {
25 | height: 100%;
26 | width: 100%;
27 | position: relative;
28 | background: rgba(0,0,0,0.5);
29 | border-radius: 10px;
30 | left: 0;
31 | top: 0;
32 | }
33 | .swiper-scrollbar-cursor-drag {
34 | cursor: move;
35 | }
36 | .swiper-scrollbar-lock {
37 | display: none;
38 | }
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/components/zoom/zoom.less:
--------------------------------------------------------------------------------
1 | .swiper-zoom-container {
2 | width: 100%;
3 | height: 100%;
4 | display: flex;
5 | justify-content: center;
6 | align-items: center;
7 | text-align: center;
8 |
9 | > img, > svg, > canvas {
10 | max-width: 100%;
11 | max-height: 100%;
12 | object-fit: contain;
13 | }
14 | }
15 |
16 | .swiper-slide-zoomed {
17 | cursor: move;
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/modules/browser/browser.js:
--------------------------------------------------------------------------------
1 | import Browser from '../../utils/browser';
2 |
3 | export default {
4 | name: 'browser',
5 | proto: {
6 | browser: Browser,
7 | },
8 | static: {
9 | browser: Browser,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/modules/device/device.js:
--------------------------------------------------------------------------------
1 | import Device from '../../utils/device';
2 |
3 | export default {
4 | name: 'device',
5 | proto: {
6 | device: Device,
7 | },
8 | static: {
9 | device: Device,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/modules/resize/resize.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/dist/components/swiper/swiper-class/modules/resize/resize.less
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/modules/support/support.js:
--------------------------------------------------------------------------------
1 | import Support from '../../utils/support';
2 |
3 | export default {
4 | name: 'support',
5 | proto: {
6 | support: Support,
7 | },
8 | static: {
9 | support: Support,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/swiper.less:
--------------------------------------------------------------------------------
1 | @import url('./less/mixins.less');
2 |
3 | @themeColor: $themeColor;
4 | @colors: $colors;
5 |
6 | @import url('./components/core/core.less');
7 |
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/browser.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | const Browser = (function Browser() {
4 | function isSafari() {
5 | const ua = window.navigator.userAgent.toLowerCase();
6 | return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);
7 | }
8 | return {
9 | isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),
10 | isSafari: isSafari(),
11 | isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),
12 | };
13 | }());
14 |
15 | export default Browser;
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/class.js:
--------------------------------------------------------------------------------
1 | import Framework7Class from '../../../../utils/class';
2 |
3 | export default Framework7Class;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/device.js:
--------------------------------------------------------------------------------
1 | import Device from '../../../../utils/device';
2 |
3 | export default Device;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/document.js:
--------------------------------------------------------------------------------
1 | export default document;
2 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/dom.js:
--------------------------------------------------------------------------------
1 | import $ from 'dom7';
2 |
3 | export default $;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/support.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../../utils/support';
2 |
3 | export default Support;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/utils.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../../../utils/utils';
2 |
3 | export default Utils;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/swiper/swiper-class/utils/window.js:
--------------------------------------------------------------------------------
1 | export default window;
2 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/tabs/tabs-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/tabs/tabs-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/timeline/timeline.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'timeline',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/touch-ripple/touch-ripple-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/touch-ripple/touch-ripple.js:
--------------------------------------------------------------------------------
1 | import TouchRipple from './touch-ripple-class';
2 |
3 | export default {
4 | name: 'touch-ripple',
5 | static: {
6 | TouchRipple,
7 | },
8 | create() {
9 | const app = this;
10 | app.touchRipple = {
11 | create(...args) {
12 | return new TouchRipple(...args);
13 | },
14 | };
15 | },
16 | };
17 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/touch-ripple/touch-ripple.less:
--------------------------------------------------------------------------------
1 | /* === Touch Ripple === */
2 | & when (@includeIosTheme) {
3 | @import url('./touch-ripple-ios.less');
4 | }
5 | & when (@includeMdTheme) {
6 | @import url('./touch-ripple-md.less');
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/typography/typography.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'typography',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/vi/vi-ios.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/dist/components/vi/vi-ios.less
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/vi/vi-md.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/dist/components/vi/vi-md.less
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/view/view.less:
--------------------------------------------------------------------------------
1 | /* === Views === */
2 | .views, .view {
3 | position: relative;
4 | height: 100%;
5 | z-index: 5000;
6 | overflow: hidden;
7 | box-sizing: border-box;
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/virtual-list/virtual-list-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/virtual-list/virtual-list-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/virtual-list/virtual-list.js:
--------------------------------------------------------------------------------
1 | import VirtualList from './virtual-list-class';
2 | import ConstructorMethods from '../../utils/constructor-methods';
3 |
4 | export default {
5 | name: 'virtualList',
6 | static: {
7 | VirtualList,
8 | },
9 | create() {
10 | const app = this;
11 | app.virtualList = ConstructorMethods({
12 | defaultSelector: '.virtual-list',
13 | constructor: VirtualList,
14 | app,
15 | domProp: 'f7VirtualList',
16 | });
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/components/virtual-list/virtual-list.less:
--------------------------------------------------------------------------------
1 | /* === Virtual List === */
2 |
3 | & when (@includeIosTheme) {
4 | @import url('./virtual-list-ios.less');
5 | }
6 | & when (@includeMdTheme) {
7 | @import url('./virtual-list-md.less');
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/less/colors-ios.less:
--------------------------------------------------------------------------------
1 | @red: #ff3b30;
2 | @themeColor: @themeColorIos;
3 |
4 | @colors: @colorsIos;
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/less/colors-md.less:
--------------------------------------------------------------------------------
1 | @red: #f44336;
2 | @themeColor: @themeColorMd;
3 |
4 | @colors: @colorsMd;
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/less/vars-md.less:
--------------------------------------------------------------------------------
1 | @blockBorderColor: rgba(0,0,0,0.12);
2 | @blockBorderColorDark: rgba(255,255,255,0.08);
3 | @blockBgDark: rgba(255,255,255,0.03);
4 | @barsBg: @themeColor;
5 | @navbarSize: 56px;
6 | @navbarSizeTablet: 64px;
7 | @navbarBg: @barsBg;
8 | @toolbarBg: @barsBg;
9 | @toolbarColor: #fff;
10 | @toolbarLinkColor: #fff;
11 | @toolbarSize: 48px;
12 | @tabbarLabelsSize: 72px;
13 | @tabbarLabelsBottomSize: 56px;
14 | @tabbarLinkColor: rgba(255,255,255,0.7);
15 | @tabbarActiveLinkColor: rgba(255,255,255,1);
16 | @searchbarSize: 48px;
17 | @searchbarBg: #fff;
18 | @messageReceivedBg: #fff;
19 | @messageReceivedColor: #333;
20 | @messageSentBg: #c8e6c9;
21 | @messageSentColor: #333;
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/modules/history/history.js:
--------------------------------------------------------------------------------
1 | import History from '../../utils/history';
2 |
3 | export default {
4 | name: 'history',
5 | static: {
6 | history: History,
7 | },
8 | on: {
9 | init() {
10 | History.init(this);
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/modules/request/request.js:
--------------------------------------------------------------------------------
1 | /* eslint no-param-reassign: "off" */
2 | import Request from '../../utils/request';
3 |
4 | export default {
5 | name: 'request',
6 | proto: {
7 | request: Request,
8 | },
9 | static: {
10 | request: Request,
11 | },
12 | };
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/modules/router/router.js:
--------------------------------------------------------------------------------
1 | import Router from './router-class';
2 |
3 | export default {
4 | name: 'router',
5 | static: {
6 | Router,
7 | },
8 | instance: {
9 | cache: {
10 | xhr: [],
11 | templates: [],
12 | components: [],
13 | },
14 | },
15 | create() {
16 | const instance = this;
17 | if (instance.app) {
18 | // View Router
19 | if (instance.params.router) {
20 | instance.router = new Router(instance.app, instance);
21 | }
22 | } else {
23 | // App Router
24 | instance.router = new Router(instance);
25 | }
26 | },
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/modules/support/support.js:
--------------------------------------------------------------------------------
1 | import { document } from 'ssr-window';
2 | import Support from '../../utils/support';
3 |
4 | export default {
5 | name: 'support',
6 | proto: {
7 | support: Support,
8 | },
9 | static: {
10 | support: Support,
11 | },
12 | on: {
13 | init() {
14 | const html = document.querySelector('html');
15 | if (!html) return;
16 | const classNames = [];
17 | if (Support.positionSticky) {
18 | classNames.push('support-position-sticky');
19 | }
20 | // Add html classes
21 | classNames.forEach((className) => {
22 | html.classList.add(className);
23 | });
24 | },
25 | },
26 | };
27 |
--------------------------------------------------------------------------------
/app/templates/framework7/dist/modules/utils/utils.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../utils/utils';
2 |
3 | export default {
4 | name: 'utils',
5 | proto: {
6 | utils: Utils,
7 | },
8 | static: {
9 | utils: Utils,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/gulpfile.js:
--------------------------------------------------------------------------------
1 | require('./scripts/gulpfile');
2 |
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.eot
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.ttf
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.woff
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/Framework7Icons-Regular.woff2
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.eot
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.ttf
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.woff
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/fonts/MaterialIcons-Regular.woff2
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/beach.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/beach.jpg
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/f7-icon-square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/f7-icon-square.png
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/f7-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/f7-icon.png
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/lock.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/lock.jpg
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/monkey.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/monkey.jpg
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/mountains.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/mountains.jpg
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/img/vi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/kitchen-sink/img/vi-icon.png
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/js/app.js:
--------------------------------------------------------------------------------
1 | // Dom7
2 | var $ = Dom7;
3 |
4 | // Theme
5 | var theme = 'auto';
6 | if (document.location.search.indexOf('theme=') >= 0) {
7 | theme = document.location.search.split('theme=')[1].split('&')[0];
8 | }
9 |
10 | // Init App
11 | var app = new Framework7({
12 | id: 'io.framework7.testapp',
13 | root: '#app',
14 | theme: theme,
15 | data: function () {
16 | return {
17 | user: {
18 | firstName: 'John',
19 | lastName: 'Doe',
20 | },
21 | };
22 | },
23 | methods: {
24 | helloWorld: function () {
25 | app.dialog.alert('Hello World!');
26 | },
27 | },
28 | routes: routes,
29 | vi: {
30 | placementId: 'pltd4o7ibb9rc653x14',
31 | },
32 | });
33 |
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/pages/404.html:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
Sorry
16 |
Requested content not found.
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/kitchen-sink/pages/timeline.html:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/app/templates/framework7/scripts/banner.js:
--------------------------------------------------------------------------------
1 | const pkg = require('../package.json');
2 |
3 | const date = {
4 | day: new Date().getDate(),
5 | month: ('January February March April May June July August September October November December').split(' ')[new Date().getMonth()],
6 | year: new Date().getFullYear(),
7 | };
8 |
9 | module.exports = `${`
10 | /**
11 | * Framework7 ${pkg.version}
12 | * ${pkg.description}
13 | * ${pkg.homepage}
14 | *
15 | * Copyright 2014-${date.year} ${pkg.author}
16 | *
17 | * Released under the ${pkg.license} License
18 | *
19 | * Released on: ${date.month} ${date.day}, ${date.year}
20 | */
21 | `.trim()}\n`;
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/scripts/get-output.js:
--------------------------------------------------------------------------------
1 | /* eslint import/no-unresolved: "off" */
2 | /* eslint global-require: "off" */
3 | /* eslint no-console: ["error", { allow: ["log"] }] */
4 |
5 | const path = require('path');
6 |
7 | let logged = false;
8 |
9 | function getOutput() {
10 | const args = process.argv;
11 | let outputArgIndex;
12 | let outputPath;
13 | args.forEach((arg, argIndex) => {
14 | if (arg === '--output') outputArgIndex = argIndex;
15 | });
16 | if (outputArgIndex && args[outputArgIndex + 1]) {
17 | outputPath = path.resolve(args[outputArgIndex + 1]);
18 | }
19 | if (outputPath) {
20 | if (!logged) {
21 | console.log(`Build will be available at ${outputPath}`);
22 | }
23 | logged = true;
24 | }
25 | return outputPath;
26 | }
27 |
28 | module.exports = getOutput;
29 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/badge/badge-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .badge {
4 | font-size: 13px;
5 | border-radius: 20px;
6 | padding: 0 6px;
7 | height: 20px;
8 | line-height: 20px;
9 | .item-after & {
10 | min-width: 20px;
11 | }
12 | }
13 | .icon, .f7-icons, .framework7-icons, .material-icons {
14 | .badge {
15 | line-height: 16px;
16 | height: 16px;
17 | border-radius: 16px;
18 | padding: 0 4px;
19 | min-width: 16px;
20 | font-family: -apple-system, SF UI Text, Helvetica Neue, Helvetica, Arial, sans-serif;
21 | font-size: 10px;
22 | }
23 | }
24 | .color-loop({
25 | .badge.color-@{colorName} {
26 | background-color: @colorValue;
27 | }
28 | });
29 | }
30 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/badge/badge-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .badge {
4 | font-size: 10px;
5 | border-radius: 3px;
6 | padding: 1px 6px;
7 | vertical-align: middle;
8 | }
9 | .icon, .f7-icons, .framework7-icons, .material-icons {
10 | .badge {
11 | line-height: 1.4;
12 | padding: 1px 5px;
13 | font-family: Roboto, Noto, Helvetica, Arial, sans-serif;
14 | font-size: 10px;
15 | }
16 | }
17 | .color-loop({
18 | .badge.color-@{colorName} {
19 | background-color: @colorValue;
20 | }
21 | });
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/badge/badge.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'badge',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/badge/badge.less:
--------------------------------------------------------------------------------
1 | /* === Badge === */
2 | .badge {
3 | display: inline-block;
4 | color: #fff;
5 | background: #8e8e93;
6 | position: relative;
7 | box-sizing: border-box;
8 | text-align: center;
9 | .icon &, .f7-icons &, .framework7-icons &, .material-icons & {
10 | position: absolute;
11 | left: 100%;
12 | margin-left: -10px;
13 | top: -2px;
14 | }
15 | }
16 |
17 | & when (@includeIosTheme) {
18 | @import url('./badge-ios.less');
19 | }
20 | & when (@includeMdTheme) {
21 | @import url('./badge-md.less');
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/block/block.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'block',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/button/button.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'button',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/card/card.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'card',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/checkbox/checkbox.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'checkbox',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/chip/chip.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'chip',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/contacts-list/contact-list.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'contactList',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/contacts-list/contacts-list-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .contacts-list {
4 | margin: 0;
5 | .list-group-title {
6 | padding: 0 15px;
7 | background: #f7f7f7;
8 | color: #000;
9 | font-weight: 600;
10 | line-height: 22px;
11 | height: 22px;
12 | }
13 | }
14 | // Dark Theme
15 | & when (@includeDarkTheme) {
16 | .theme-dark {
17 | .contacts-list, .contacts-list& {
18 | .list-group-title {
19 | background-color: #111;
20 | color: #fff;
21 | }
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/contacts-list/contacts-list.less:
--------------------------------------------------------------------------------
1 | /* === Contacts === */
2 | .contacts-list {
3 | .list-group:first-child ul {
4 | .hairline-remove(top);
5 | }
6 | .list-group:last-child ul {
7 | .hairline-remove(bottom);
8 | }
9 | }
10 | & when (@includeIosTheme) {
11 | @import url('./contacts-list-ios.less');
12 | }
13 | & when (@includeMdTheme) {
14 | @import url('./contacts-list-md.less');
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/core/core-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | body {
4 | font-family: Roboto, Noto, Helvetica, Arial, sans-serif;
5 | color: #212121;
6 | line-height: 1.5;
7 | }
8 | .ios-only, .if-ios {
9 | display: none !important;
10 | }
11 | a {
12 | color: @themeColor;
13 | }
14 | // Dark Theme
15 | & when (@includeDarkTheme) {
16 | .theme-dark {
17 | color: rgba(255,255,255,0.87);
18 | }
19 | }
20 |
21 | .color-theme-loop({
22 | .color-theme-@{colorThemeName} {
23 | a {
24 | color: @colorThemeValue;
25 | }
26 | }
27 | });
28 | .color-loop({
29 | a.color-@{colorName} {
30 | color: @colorValue;
31 | }
32 | });
33 | }
34 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/grid/grid.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'grid',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/grid/grid.less:
--------------------------------------------------------------------------------
1 | /* === Grid === */
2 | .row {
3 | display: flex;
4 | justify-content: space-between;
5 | flex-wrap: wrap;
6 | align-items: flex-start;
7 | > [class*="col-"], > .col {
8 | box-sizing: border-box;
9 | }
10 | }
11 | @cols: 5, 10, 15, 20, 25, 30, 100/3, 35, 40, 45, 50, 55, 60, 65, 100*(2/3), 70, 75, 80, 85, 90, 95, 100;
12 | .row {
13 | .col {
14 | width: 100%;
15 | }
16 | }
17 |
18 | & when (@includeIosTheme) {
19 | @import url('./grid-ios.less');
20 | }
21 | & when (@includeMdTheme) {
22 | @import url('./grid-md.less');
23 | }
24 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/icon/icon.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'icon',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/icon/icon.less:
--------------------------------------------------------------------------------
1 | /* === Icon === */
2 | i.icon {
3 | display: inline-block;
4 | vertical-align: middle;
5 | background-size: 100% auto;
6 | background-position: center;
7 | background-repeat: no-repeat;
8 | font-style: normal;
9 | position: relative;
10 | }
11 |
12 | & when (@includeIosTheme) {
13 | @import url('./icon-ios.less');
14 | }
15 | & when (@includeMdTheme) {
16 | @import url('./icon-md.less');
17 | }
18 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/infinite-scroll/infinite-scroll-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | .infinite-scroll-preloader {
5 | margin-top: 35px;
6 | margin-bottom: 35px;
7 | .preloader, &.preloader {
8 | width: 27px;
9 | height: 27px;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/infinite-scroll/infinite-scroll-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .infinite-scroll-preloader {
4 | margin-top: 32px;
5 | margin-bottom: 32px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/infinite-scroll/infinite-scroll.less:
--------------------------------------------------------------------------------
1 | /* === Infinite === */
2 | .infinite-scroll-preloader {
3 | margin-left: auto;
4 | margin-right: auto;
5 | text-align: center;
6 | &.preloader {
7 | display: block;
8 | }
9 | }
10 | & when (@includeIosTheme) {
11 | @import url('./infinite-scroll-ios.less');
12 | }
13 | & when (@includeMdTheme) {
14 | @import url('./infinite-scroll-md.less');
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/lazy/lazy-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/lazy/lazy-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/lazy/lazy.less:
--------------------------------------------------------------------------------
1 | /* === Images Lazy Loading === */
2 | .lazy-loaded.lazy-fade-in {
3 | animation: lazyFadeIn 600ms;
4 | }
5 |
6 | @keyframes lazyFadeIn {
7 | from {
8 | opacity: 0;
9 | }
10 | to {
11 | opacity: 1;
12 | }
13 | }
14 |
15 | & when (@includeIosTheme) {
16 | @import url('./lazy-ios.less');
17 | }
18 | & when (@includeMdTheme) {
19 | @import url('./lazy-md.less');
20 | }
21 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/link/link-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | .link {
3 | transition: opacity 300ms;
4 | i + span, i + i, span + i, span + span {
5 | .ltr({
6 | margin-left: 7px;
7 | });
8 | .rtl({
9 | margin-right: 7px;
10 | });
11 | }
12 | &.active-state {
13 | opacity: 0.3;
14 | transition-duration: 0ms;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/link/link-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | .link {
3 | i + span, i + i, span + i, span + span {
4 | .ltr({
5 | margin-left: 8px;
6 | });
7 | .rtl({
8 | margin-right: 8px;
9 | });
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/link/link.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'link',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/link/link.less:
--------------------------------------------------------------------------------
1 | /* === Link === */
2 | .link, .tab-link {
3 | display: inline-flex;
4 | align-items: center;
5 | align-content: center;
6 | justify-content: center;
7 | position: relative;
8 | box-sizing: border-box;
9 | transform: translate3d(0, 0, 0);
10 | z-index: 1;
11 | }
12 |
13 | & when (@includeIosTheme) {
14 | @import url('./link-ios.less');
15 | }
16 | & when (@includeMdTheme) {
17 | @import url('./link-md.less');
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/list/list.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'list',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/login-screen/login-screen-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .login-screen-content {
4 | .login-screen-title, .list, .block {
5 | margin: 25px auto;
6 | }
7 | }
8 | .login-screen-title {
9 | font-size: 30px;
10 | }
11 | // Dark Theme
12 | & when (@includeDarkTheme) {
13 | .theme-dark {
14 | .login-screen-content, .login-screen-content .list ul {
15 | background-color: transparent;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/login-screen/login-screen.js:
--------------------------------------------------------------------------------
1 | import LoginScreen from './login-screen-class';
2 | import ModalMethods from '../../utils/modal-methods';
3 |
4 | export default {
5 | name: 'loginScreen',
6 | static: {
7 | LoginScreen,
8 | },
9 | create() {
10 | const app = this;
11 | app.loginScreen = ModalMethods({
12 | app,
13 | constructor: LoginScreen,
14 | defaultSelector: '.login-screen.modal-in',
15 | });
16 | },
17 | clicks: {
18 | '.login-screen-open': function openLoginScreen($clickedEl, data = {}) {
19 | const app = this;
20 | app.loginScreen.open(data.loginScreen, data.animate);
21 | },
22 | '.login-screen-close': function closeLoginScreen($clickedEl, data = {}) {
23 | const app = this;
24 | app.loginScreen.close(data.loginScreen, data.animate);
25 | },
26 | },
27 | };
28 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/modal/modal.js:
--------------------------------------------------------------------------------
1 | import Modal from './modal-class';
2 | import CustomModal from './custom-modal-class';
3 |
4 | export default {
5 | name: 'modal',
6 | static: {
7 | Modal,
8 | CustomModal,
9 | },
10 | create() {
11 | const app = this;
12 | app.customModal = {
13 | create(params) {
14 | return new CustomModal(app, params);
15 | },
16 | };
17 | },
18 | params: {
19 | modal: {
20 | moveToRoot: true,
21 | queueDialogs: true,
22 | },
23 | },
24 | };
25 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/modal/modal.less:
--------------------------------------------------------------------------------
1 | .custom-modal-backdrop {
2 | .modal-backdrop();
3 | z-index: 10500;
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/page/page.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'page',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/page/page.less:
--------------------------------------------------------------------------------
1 | /* === Pages === */
2 | .pages {
3 | position: relative;
4 | width: 100%;
5 | height: 100%;
6 | overflow: hidden;
7 | }
8 | .page {
9 | box-sizing: border-box;
10 | position: absolute;
11 | left: 0;
12 | top: 0;
13 | width: 100%;
14 | height: 100%;
15 | transform: translate3d(0,0,0);
16 | &.stacked {
17 | display: none;
18 | }
19 | }
20 | .page-previous {
21 | pointer-events: none;
22 | }
23 | .page-content {
24 | .scrollable();
25 | box-sizing: border-box;
26 | height: 100%;
27 | position: relative;
28 | z-index: 1;
29 | }
30 |
31 | & when (@includeIosTheme) {
32 | @import url('./page-ios.less');
33 | }
34 | & when (@includeMdTheme) {
35 | @import url('./page-md.less');
36 | }
37 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/panel/panel-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .panel-backdrop {
4 | transition-duration: 400ms;
5 | background: rgba(0,0,0,0);
6 | }
7 | .panel {
8 | transition-duration: 400ms;
9 | }
10 | &.with-panel-left-reveal, &.with-panel-right-reveal, &.with-panel-transitioning {
11 | .views, .framework7-root > .view {
12 | transition-duration: 400ms;
13 | transition-property: transform;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/popup/popup-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/popup/popup-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | @media (min-width: 630px) and (min-height: 630px) {
4 | .popup:not(.popup-tablet-fullscreen) {
5 | box-shadow: 0px 20px 44px rgba(0,0,0,0.5);
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/popup/popup.js:
--------------------------------------------------------------------------------
1 | import Popup from './popup-class';
2 | import ModalMethods from '../../utils/modal-methods';
3 |
4 | export default {
5 | name: 'popup',
6 | params: {
7 | popup: {
8 | backdrop: true,
9 | closeByBackdropClick: true,
10 | },
11 | },
12 | static: {
13 | Popup,
14 | },
15 | create() {
16 | const app = this;
17 | app.popup = ModalMethods({
18 | app,
19 | constructor: Popup,
20 | defaultSelector: '.popup.modal-in',
21 | });
22 | },
23 | clicks: {
24 | '.popup-open': function openPopup($clickedEl, data = {}) {
25 | const app = this;
26 | app.popup.open(data.popup, data.animate);
27 | },
28 | '.popup-close': function closePopup($clickedEl, data = {}) {
29 | const app = this;
30 | app.popup.close(data.popup, data.animate);
31 | },
32 | },
33 | };
34 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/preloader/preloader.less:
--------------------------------------------------------------------------------
1 | /* === Preloader === */
2 | .preloader {
3 | display: inline-block;
4 | vertical-align: middle;
5 | }
6 |
7 | /* === Preloader Modal === */
8 | .preloader-backdrop {
9 | .modal-backdrop();
10 | visibility: visible;
11 | opacity: 0;
12 | background: none;
13 | }
14 | .preloader-modal {
15 | position: absolute;
16 | left: 50%;
17 | top: 50%;
18 | padding: 8px;
19 | background: rgba(0,0,0,0.8);
20 | z-index: 13500;
21 | transform: translateX(-50%) translateY(-50%);
22 | .preloader {
23 | display: block !important;
24 | }
25 | }
26 | html.with-modal-preloader {
27 | .page-content {
28 | .not-scrollable();
29 | }
30 | }
31 | & when (@includeIosTheme) {
32 | @import url('./preloader-ios.less');
33 | }
34 | & when (@includeMdTheme) {
35 | @import url('./preloader-md.less');
36 | }
37 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/pull-to-refresh/pull-to-refresh.less:
--------------------------------------------------------------------------------
1 | /* === PTR === */
2 | .ptr-preloader {
3 | .preloader {
4 | position: absolute;
5 | left: 50%;
6 | }
7 | }
8 | & when (@includeIosTheme) {
9 | @import url('./pull-to-refresh-ios.less');
10 | }
11 | & when (@includeMdTheme) {
12 | @import url('./pull-to-refresh-md.less');
13 | }
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/radio/radio.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'radio',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/smart-select/smart-select-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | @import (multiple) '../../less/vars-ios.less';
4 | .smart-select-sheet {
5 | .page {
6 | background: #fff;
7 | }
8 | }
9 | .hairline-root('.smart-select-sheet .toolbar', bottom, @barsBorderColor);
10 | // Dark Theme
11 | & when (@includeDarkTheme) {
12 | .theme-dark {
13 | .smart-select-sheet .page,
14 | .smart-select-sheet .sheet-modal-inner {
15 | background-color: @blockBgDark;
16 | }
17 | .smart-select-sheet .toolbar {
18 | .hairline-color(bottom, @barsBorderColorDark);
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/smart-select/smart-select-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | // Dark Theme
4 | & when (@includeDarkTheme) {
5 | .theme-dark {
6 | .sheet-modal.smart-select-sheet .sheet-modal-inner {
7 | background-color: transparent;
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/smart-select/smart-select.less:
--------------------------------------------------------------------------------
1 | /* === Smart Select === */
2 | .smart-select {
3 | select {
4 | display: none;
5 | }
6 | .item-after {
7 | max-width: 70%;
8 | overflow: hidden;
9 | text-overflow: ellipsis;
10 | position: relative;
11 | display: block;
12 | }
13 |
14 | }
15 | .sheet-modal.smart-select-sheet {
16 | .sheet-modal-inner {
17 | background: #fff;
18 | }
19 | .list {
20 | margin: 0;
21 | ul {
22 | .hairline-remove(top);
23 | .hairline-remove(bottom);
24 | }
25 | }
26 | }
27 | .smart-select-popover .popover-inner {
28 | max-height: 40vh;
29 | }
30 | & when (@includeIosTheme) {
31 | @import url('./smart-select-ios.less');
32 | }
33 | & when (@includeMdTheme) {
34 | @import url('./smart-select-md.less');
35 | }
36 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/statusbar/statusbar-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | @import (multiple) '../../less/vars-ios.less';
4 | .statusbar {
5 | background: #f7f7f8;
6 | }
7 | // Dark Theme
8 | & when (@includeDarkTheme) {
9 | .theme-dark {
10 | .statusbar {
11 | background-color: @barsBgDark;
12 | }
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/statusbar/statusbar-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .statusbar {
4 | background: darken(@themeColor, 15%);
5 | }
6 | .color-theme-loop({
7 | .color-theme-@{colorThemeName} .statusbar {
8 | background: darken(@colorThemeValue, 15%);
9 | }
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/subnavbar/subnavbar.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'subnavbar',
3 | on: {
4 | pageInit(page) {
5 | if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {
6 | page.$el.addClass('page-with-subnavbar');
7 | }
8 | if (page.$el.find('.subnavbar').length) {
9 | page.$el.addClass('page-with-subnavbar');
10 | }
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swipeout/swipeout-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .swipeout-actions-left, .swipeout-actions-right {
4 | > a, > button, > span, > div {
5 | padding: 0 30px;
6 | color: #fff;
7 | }
8 | .swipeout-delete {
9 | background: @red;
10 | }
11 | }
12 | .color-loop({
13 | .swipeout-actions-left, .swipeout-actions-right {
14 | > a, > button, > span, > div {
15 | &.color-@{colorName} {
16 | background-color: @colorValue;
17 | }
18 | }
19 | }
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swipeout/swipeout-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .swipeout-actions-left, .swipeout-actions-right {
4 | > a, > button, > span, > div {
5 | padding: 0 24px;
6 | color: #fff;
7 | }
8 | .swipeout-delete {
9 | background: @red;
10 | }
11 | }
12 | .color-loop({
13 | .swipeout-actions-left, .swipeout-actions-right {
14 | > a, > button, > span, > div {
15 | &.color-@{colorName} {
16 | background-color: @colorValue;
17 | }
18 | }
19 | }
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/a11y/a11y.less:
--------------------------------------------------------------------------------
1 | /* a11y */
2 | .swiper-container .swiper-notification {
3 | position: absolute;
4 | left: 0;
5 | top: 0;
6 | pointer-events: none;
7 | opacity: 0;
8 | z-index: -1000;
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/controller/controller.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/src/components/swiper/swiper-class/components/controller/controller.less
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/breakpoints/getBreakpoint.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | export default function (breakpoints) {
4 | // Get breakpoint for window width
5 | if (!breakpoints) return undefined;
6 | let breakpoint = false;
7 | const points = [];
8 | Object.keys(breakpoints).forEach((point) => {
9 | points.push(point);
10 | });
11 | points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
12 | for (let i = 0; i < points.length; i += 1) {
13 | const point = points[i];
14 | if (point >= window.innerWidth && !breakpoint) {
15 | breakpoint = point;
16 | }
17 | }
18 | return breakpoint || 'max';
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/breakpoints/index.js:
--------------------------------------------------------------------------------
1 | import setBreakpoint from './setBreakpoint';
2 | import getBreakpoint from './getBreakpoint';
3 |
4 | export default { setBreakpoint, getBreakpoint };
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/check-overflow/index.js:
--------------------------------------------------------------------------------
1 |
2 | function checkOverflow() {
3 | const swiper = this;
4 | const wasLocked = swiper.isLocked;
5 |
6 | swiper.isLocked = swiper.snapGrid.length === 1;
7 | swiper.allowSlideNext = !swiper.isLocked;
8 | swiper.allowSlidePrev = !swiper.isLocked;
9 |
10 | // events
11 | if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
12 |
13 | if (wasLocked && wasLocked !== swiper.isLocked) {
14 | swiper.isEnd = false;
15 | swiper.navigation.update();
16 | }
17 | }
18 |
19 | export default { checkOverflow };
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/classes/index.js:
--------------------------------------------------------------------------------
1 | import addClasses from './addClasses';
2 | import removeClasses from './removeClasses';
3 |
4 | export default { addClasses, removeClasses };
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/classes/removeClasses.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const { $el, classNames } = swiper;
4 |
5 | $el.removeClass(classNames.join(' '));
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/events/onClick.js:
--------------------------------------------------------------------------------
1 | export default function (e) {
2 | const swiper = this;
3 | if (process.env.TARGET === 'desktop') {
4 | swiper.emit('tap click', e);
5 | } else if (!swiper.allowClick) {
6 | if (swiper.params.preventClicks) e.preventDefault();
7 | if (swiper.params.preventClicksPropagation && swiper.animating) {
8 | e.stopPropagation();
9 | e.stopImmediatePropagation();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/grab-cursor/index.js:
--------------------------------------------------------------------------------
1 | import setGrabCursor from './setGrabCursor';
2 | import unsetGrabCursor from './unsetGrabCursor';
3 |
4 | export default {
5 | setGrabCursor,
6 | unsetGrabCursor,
7 | };
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/grab-cursor/setGrabCursor.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (moving) {
4 | const swiper = this;
5 | if (Support.touch || !swiper.params.simulateTouch) return;
6 | const el = swiper.el;
7 | el.style.cursor = 'move';
8 | el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';
9 | el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';
10 | el.style.cursor = moving ? 'grabbing' : 'grab';
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/grab-cursor/unsetGrabCursor.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function () {
4 | const swiper = this;
5 | if (Support.touch) return;
6 | swiper.el.style.cursor = '';
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/images/index.js:
--------------------------------------------------------------------------------
1 | import loadImage from './loadImage';
2 | import preloadImages from './preloadImages';
3 |
4 | export default {
5 | loadImage,
6 | preloadImages,
7 | };
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/images/loadImage.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | export default function (imageEl, src, srcset, sizes, checkForComplete, callback) {
4 | let image;
5 | function onReady() {
6 | if (callback) callback();
7 | }
8 | if (!imageEl.complete || !checkForComplete) {
9 | if (src) {
10 | image = new window.Image();
11 | image.onload = onReady;
12 | image.onerror = onReady;
13 | if (sizes) {
14 | image.sizes = sizes;
15 | }
16 | if (srcset) {
17 | image.srcset = srcset;
18 | }
19 | if (src) {
20 | image.src = src;
21 | }
22 | } else {
23 | onReady();
24 | }
25 | } else {
26 | // image already loaded...
27 | onReady();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/loop/index.js:
--------------------------------------------------------------------------------
1 | import loopCreate from './loopCreate';
2 | import loopFix from './loopFix';
3 | import loopDestroy from './loopDestroy';
4 |
5 | export default {
6 | loopCreate,
7 | loopFix,
8 | loopDestroy,
9 | };
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/loop/loopDestroy.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const { $wrapperEl, params, slides } = swiper;
4 | $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
5 | slides.removeAttr('data-swiper-slide-index');
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/manipulation/appendSlide.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (slides) {
4 | const swiper = this;
5 | const { $wrapperEl, params } = swiper;
6 | if (params.loop) {
7 | swiper.loopDestroy();
8 | }
9 | if (typeof slides === 'object' && 'length' in slides) {
10 | for (let i = 0; i < slides.length; i += 1) {
11 | if (slides[i]) $wrapperEl.append(slides[i]);
12 | }
13 | } else {
14 | $wrapperEl.append(slides);
15 | }
16 | if (params.loop) {
17 | swiper.loopCreate();
18 | }
19 | if (!(params.observer && Support.observer)) {
20 | swiper.update();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/manipulation/index.js:
--------------------------------------------------------------------------------
1 | import appendSlide from './appendSlide';
2 | import prependSlide from './prependSlide';
3 | import removeSlide from './removeSlide';
4 | import removeAllSlides from './removeAllSlides';
5 |
6 | export default {
7 | appendSlide,
8 | prependSlide,
9 | removeSlide,
10 | removeAllSlides,
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/manipulation/prependSlide.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (slides) {
4 | const swiper = this;
5 | const { params, $wrapperEl, activeIndex } = swiper;
6 |
7 | if (params.loop) {
8 | swiper.loopDestroy();
9 | }
10 | let newActiveIndex = activeIndex + 1;
11 | if (typeof slides === 'object' && 'length' in slides) {
12 | for (let i = 0; i < slides.length; i += 1) {
13 | if (slides[i]) $wrapperEl.prepend(slides[i]);
14 | }
15 | newActiveIndex = activeIndex + slides.length;
16 | } else {
17 | $wrapperEl.prepend(slides);
18 | }
19 | if (params.loop) {
20 | swiper.loopCreate();
21 | }
22 | if (!(params.observer && Support.observer)) {
23 | swiper.update();
24 | }
25 | swiper.slideTo(newActiveIndex, 0, false);
26 | }
27 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/manipulation/removeAllSlides.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 |
4 | const slidesIndexes = [];
5 | for (let i = 0; i < swiper.slides.length; i += 1) {
6 | slidesIndexes.push(i);
7 | }
8 | swiper.removeSlide(slidesIndexes);
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/slide/index.js:
--------------------------------------------------------------------------------
1 | import slideTo from './slideTo';
2 | import slideToLoop from './slideToLoop';
3 | import slideNext from './slideNext';
4 | import slidePrev from './slidePrev';
5 | import slideReset from './slideReset';
6 | import slideToClosest from './slideToClosest';
7 | import slideToClickedSlide from './slideToClickedSlide';
8 |
9 | export default {
10 | slideTo,
11 | slideToLoop,
12 | slideNext,
13 | slidePrev,
14 | slideReset,
15 | slideToClosest,
16 | slideToClickedSlide,
17 | };
18 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/slide/slideNext.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | const { params, animating } = swiper;
5 | if (params.loop) {
6 | if (animating) return false;
7 | swiper.loopFix();
8 | // eslint-disable-next-line
9 | swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
10 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
11 | }
12 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
13 | }
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/slide/slideReset.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
5 | }
6 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/slide/slideToClosest.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | let index = swiper.activeIndex;
5 | const snapIndex = Math.floor(index / swiper.params.slidesPerGroup);
6 |
7 | if (snapIndex < swiper.snapGrid.length - 1) {
8 | const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
9 |
10 | const currentSnap = swiper.snapGrid[snapIndex];
11 | const nextSnap = swiper.snapGrid[snapIndex + 1];
12 |
13 | if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {
14 | index = swiper.params.slidesPerGroup;
15 | }
16 | }
17 |
18 | return swiper.slideTo(index, speed, runCallbacks, internal);
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/slide/slideToLoop.js:
--------------------------------------------------------------------------------
1 | export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {
2 | const swiper = this;
3 | let newIndex = index;
4 | if (swiper.params.loop) {
5 | newIndex += swiper.loopedSlides;
6 | }
7 |
8 | return swiper.slideTo(newIndex, speed, runCallbacks, internal);
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/transition/index.js:
--------------------------------------------------------------------------------
1 | import setTransition from './setTransition';
2 | import transitionStart from './transitionStart';
3 | import transitionEnd from './transitionEnd';
4 |
5 | export default {
6 | setTransition,
7 | transitionStart,
8 | transitionEnd,
9 | };
10 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/transition/setTransition.js:
--------------------------------------------------------------------------------
1 | export default function (duration, byController) {
2 | const swiper = this;
3 |
4 | swiper.$wrapperEl.transition(duration);
5 |
6 | swiper.emit('setTransition', duration, byController);
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/translate/getTranslate.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../../utils/utils';
2 |
3 | export default function (axis = this.isHorizontal() ? 'x' : 'y') {
4 | const swiper = this;
5 |
6 | const {
7 | params, rtlTranslate: rtl, translate, $wrapperEl,
8 | } = swiper;
9 |
10 | if (params.virtualTranslate) {
11 | return rtl ? -translate : translate;
12 | }
13 |
14 | let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);
15 | if (rtl) currentTranslate = -currentTranslate;
16 |
17 | return currentTranslate || 0;
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/translate/index.js:
--------------------------------------------------------------------------------
1 | import getTranslate from './getTranslate';
2 | import setTranslate from './setTranslate';
3 | import minTranslate from './minTranslate';
4 | import maxTranslate from './maxTranslate';
5 |
6 | export default {
7 | getTranslate,
8 | setTranslate,
9 | minTranslate,
10 | maxTranslate,
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/translate/maxTranslate.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return (-this.snapGrid[this.snapGrid.length - 1]);
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/translate/minTranslate.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return (-this.snapGrid[0]);
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/update/index.js:
--------------------------------------------------------------------------------
1 | import updateSize from './updateSize';
2 | import updateSlides from './updateSlides';
3 | import updateAutoHeight from './updateAutoHeight';
4 | import updateSlidesOffset from './updateSlidesOffset';
5 | import updateSlidesProgress from './updateSlidesProgress';
6 | import updateProgress from './updateProgress';
7 | import updateSlidesClasses from './updateSlidesClasses';
8 | import updateActiveIndex from './updateActiveIndex';
9 | import updateClickedSlide from './updateClickedSlide';
10 |
11 | export default {
12 | updateSize,
13 | updateSlides,
14 | updateAutoHeight,
15 | updateSlidesOffset,
16 | updateSlidesProgress,
17 | updateProgress,
18 | updateSlidesClasses,
19 | updateActiveIndex,
20 | updateClickedSlide,
21 | };
22 |
23 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/core/update/updateSlidesOffset.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const slides = swiper.slides;
4 | for (let i = 0; i < slides.length; i += 1) {
5 | slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/effect-coverflow/effect-coverflow.less:
--------------------------------------------------------------------------------
1 | .swiper-container-coverflow {
2 | .swiper-wrapper {
3 | /* Windows 8 IE 10 fix */
4 | -ms-perspective: 1200px;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/effect-fade/effect-fade.less:
--------------------------------------------------------------------------------
1 | .swiper-container-fade {
2 | &.swiper-container-free-mode {
3 | .swiper-slide {
4 | transition-timing-function: ease-out;
5 | }
6 | }
7 | .swiper-slide {
8 | pointer-events: none;
9 | transition-property: opacity;
10 | .swiper-slide {
11 | pointer-events: none;
12 | }
13 | }
14 | .swiper-slide-active {
15 | &, & .swiper-slide-active {
16 | pointer-events: auto;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/effect-flip/effect-flip.less:
--------------------------------------------------------------------------------
1 | .swiper-container-flip {
2 | overflow: visible;
3 | .swiper-slide {
4 | pointer-events: none;
5 | backface-visibility: hidden;
6 | z-index: 1;
7 | .swiper-slide {
8 | pointer-events: none;
9 | }
10 | }
11 | .swiper-slide-active {
12 | &, & .swiper-slide-active {
13 | pointer-events: auto;
14 | }
15 | }
16 | .swiper-slide-shadow-top, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left, .swiper-slide-shadow-right {
17 | z-index: 0;
18 | backface-visibility: hidden;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/components/zoom/zoom.less:
--------------------------------------------------------------------------------
1 | .swiper-zoom-container {
2 | width: 100%;
3 | height: 100%;
4 | display: flex;
5 | justify-content: center;
6 | align-items: center;
7 | text-align: center;
8 |
9 | > img, > svg, > canvas {
10 | max-width: 100%;
11 | max-height: 100%;
12 | object-fit: contain;
13 | }
14 | }
15 |
16 | .swiper-slide-zoomed {
17 | cursor: move;
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/modules/browser/browser.js:
--------------------------------------------------------------------------------
1 | import Browser from '../../utils/browser';
2 |
3 | export default {
4 | name: 'browser',
5 | proto: {
6 | browser: Browser,
7 | },
8 | static: {
9 | browser: Browser,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/modules/device/device.js:
--------------------------------------------------------------------------------
1 | import Device from '../../utils/device';
2 |
3 | export default {
4 | name: 'device',
5 | proto: {
6 | device: Device,
7 | },
8 | static: {
9 | device: Device,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/modules/resize/resize.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/src/components/swiper/swiper-class/modules/resize/resize.less
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/modules/support/support.js:
--------------------------------------------------------------------------------
1 | import Support from '../../utils/support';
2 |
3 | export default {
4 | name: 'support',
5 | proto: {
6 | support: Support,
7 | },
8 | static: {
9 | support: Support,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/swiper.less:
--------------------------------------------------------------------------------
1 | @import url('./less/mixins.less');
2 |
3 | @themeColor: $themeColor;
4 | @colors: $colors;
5 |
6 | @import url('./components/core/core.less');
7 |
8 | //IMPORT_COMPONENTS
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/utils/browser.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | const Browser = (function Browser() {
4 | function isSafari() {
5 | const ua = window.navigator.userAgent.toLowerCase();
6 | return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);
7 | }
8 | return {
9 | isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),
10 | isSafari: isSafari(),
11 | isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),
12 | };
13 | }());
14 |
15 | export default Browser;
16 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/utils/class.js:
--------------------------------------------------------------------------------
1 | import Framework7Class from '../../../../utils/class';
2 |
3 | export default Framework7Class;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/utils/device.js:
--------------------------------------------------------------------------------
1 | import Device from '../../../../utils/device';
2 |
3 | export default Device;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/utils/dom.js:
--------------------------------------------------------------------------------
1 | import $ from 'dom7';
2 |
3 | export default $;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/utils/support.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../../utils/support';
2 |
3 | export default Support;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/swiper/swiper-class/utils/utils.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../../../utils/utils';
2 |
3 | export default Utils;
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/tabs/tabs-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/tabs/tabs-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/timeline/timeline.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'timeline',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/touch-ripple/touch-ripple-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/touch-ripple/touch-ripple.js:
--------------------------------------------------------------------------------
1 | import TouchRipple from './touch-ripple-class';
2 |
3 | export default {
4 | name: 'touch-ripple',
5 | static: {
6 | TouchRipple,
7 | },
8 | create() {
9 | const app = this;
10 | app.touchRipple = {
11 | create(...args) {
12 | return new TouchRipple(...args);
13 | },
14 | };
15 | },
16 | };
17 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/touch-ripple/touch-ripple.less:
--------------------------------------------------------------------------------
1 | /* === Touch Ripple === */
2 | & when (@includeIosTheme) {
3 | @import url('./touch-ripple-ios.less');
4 | }
5 | & when (@includeMdTheme) {
6 | @import url('./touch-ripple-md.less');
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/typography/typography.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'typography',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/vi/vi-ios.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/src/components/vi/vi-ios.less
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/vi/vi-md.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/framework7/src/components/vi/vi-md.less
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/view/view.less:
--------------------------------------------------------------------------------
1 | /* === Views === */
2 | .views, .view {
3 | position: relative;
4 | height: 100%;
5 | z-index: 5000;
6 | overflow: hidden;
7 | box-sizing: border-box;
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/virtual-list/virtual-list-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/virtual-list/virtual-list-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/virtual-list/virtual-list.js:
--------------------------------------------------------------------------------
1 | import VirtualList from './virtual-list-class';
2 | import ConstructorMethods from '../../utils/constructor-methods';
3 |
4 | export default {
5 | name: 'virtualList',
6 | static: {
7 | VirtualList,
8 | },
9 | create() {
10 | const app = this;
11 | app.virtualList = ConstructorMethods({
12 | defaultSelector: '.virtual-list',
13 | constructor: VirtualList,
14 | app,
15 | domProp: 'f7VirtualList',
16 | });
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/components/virtual-list/virtual-list.less:
--------------------------------------------------------------------------------
1 | /* === Virtual List === */
2 |
3 | & when (@includeIosTheme) {
4 | @import url('./virtual-list-ios.less');
5 | }
6 | & when (@includeMdTheme) {
7 | @import url('./virtual-list-md.less');
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/less/colors-ios.less:
--------------------------------------------------------------------------------
1 | @red: #ff3b30;
2 | @themeColor: @themeColorIos;
3 |
4 | @colors: @colorsIos;
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/less/colors-md.less:
--------------------------------------------------------------------------------
1 | @red: #f44336;
2 | @themeColor: @themeColorMd;
3 |
4 | @colors: @colorsMd;
5 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/less/vars-md.less:
--------------------------------------------------------------------------------
1 | @blockBorderColor: rgba(0,0,0,0.12);
2 | @blockBorderColorDark: rgba(255,255,255,0.08);
3 | @blockBgDark: rgba(255,255,255,0.03);
4 | @barsBg: @themeColor;
5 | @navbarSize: 56px;
6 | @navbarSizeTablet: 64px;
7 | @navbarBg: @barsBg;
8 | @toolbarBg: @barsBg;
9 | @toolbarColor: #fff;
10 | @toolbarLinkColor: #fff;
11 | @toolbarSize: 48px;
12 | @tabbarLabelsSize: 72px;
13 | @tabbarLabelsBottomSize: 56px;
14 | @tabbarLinkColor: rgba(255,255,255,0.7);
15 | @tabbarActiveLinkColor: rgba(255,255,255,1);
16 | @searchbarSize: 48px;
17 | @searchbarBg: #fff;
18 | @messageReceivedBg: #fff;
19 | @messageReceivedColor: #333;
20 | @messageSentBg: #c8e6c9;
21 | @messageSentColor: #333;
22 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/modules/history/history.js:
--------------------------------------------------------------------------------
1 | import History from '../../utils/history';
2 |
3 | export default {
4 | name: 'history',
5 | static: {
6 | history: History,
7 | },
8 | on: {
9 | init() {
10 | History.init(this);
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/modules/request/request.js:
--------------------------------------------------------------------------------
1 | /* eslint no-param-reassign: "off" */
2 | import Request from '../../utils/request';
3 |
4 | export default {
5 | name: 'request',
6 | proto: {
7 | request: Request,
8 | },
9 | static: {
10 | request: Request,
11 | },
12 | };
13 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/modules/router/router.js:
--------------------------------------------------------------------------------
1 | import Router from './router-class';
2 |
3 | export default {
4 | name: 'router',
5 | static: {
6 | Router,
7 | },
8 | instance: {
9 | cache: {
10 | xhr: [],
11 | templates: [],
12 | components: [],
13 | },
14 | },
15 | create() {
16 | const instance = this;
17 | if (instance.app) {
18 | // View Router
19 | if (instance.params.router) {
20 | instance.router = new Router(instance.app, instance);
21 | }
22 | } else {
23 | // App Router
24 | instance.router = new Router(instance);
25 | }
26 | },
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/modules/support/support.js:
--------------------------------------------------------------------------------
1 | import { document } from 'ssr-window';
2 | import Support from '../../utils/support';
3 |
4 | export default {
5 | name: 'support',
6 | proto: {
7 | support: Support,
8 | },
9 | static: {
10 | support: Support,
11 | },
12 | on: {
13 | init() {
14 | const html = document.querySelector('html');
15 | if (!html) return;
16 | const classNames = [];
17 | if (Support.positionSticky) {
18 | classNames.push('support-position-sticky');
19 | }
20 | // Add html classes
21 | classNames.forEach((className) => {
22 | html.classList.add(className);
23 | });
24 | },
25 | },
26 | };
27 |
--------------------------------------------------------------------------------
/app/templates/framework7/src/modules/utils/utils.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../utils/utils';
2 |
3 | export default {
4 | name: 'utils',
5 | proto: {
6 | utils: Utils,
7 | },
8 | static: {
9 | utils: Utils,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/plugins/cordova-plugin-whitelist/NOTICE:
--------------------------------------------------------------------------------
1 | Apache Cordova
2 | Copyright 2012 The Apache Software Foundation
3 |
4 | This product includes software developed at
5 | The Apache Software Foundation (http://www.apache.org/).
6 |
--------------------------------------------------------------------------------
/app/templates/plugins/fetch.json:
--------------------------------------------------------------------------------
1 | {
2 | "cordova-plugin-whitelist": {
3 | "source": {
4 | "type": "registry",
5 | "id": "cordova-plugin-whitelist@1"
6 | },
7 | "is_top_level": true,
8 | "variables": {}
9 | }
10 | }
--------------------------------------------------------------------------------
/app/templates/res/icon/android/icon-36-ldpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/android/icon-36-ldpi.png
--------------------------------------------------------------------------------
/app/templates/res/icon/android/icon-48-mdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/android/icon-48-mdpi.png
--------------------------------------------------------------------------------
/app/templates/res/icon/android/icon-72-hdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/android/icon-72-hdpi.png
--------------------------------------------------------------------------------
/app/templates/res/icon/android/icon-96-xhdpi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/android/icon-96-xhdpi.png
--------------------------------------------------------------------------------
/app/templates/res/icon/bada-wac/icon-48-type5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/bada-wac/icon-48-type5.png
--------------------------------------------------------------------------------
/app/templates/res/icon/bada-wac/icon-50-type3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/bada-wac/icon-50-type3.png
--------------------------------------------------------------------------------
/app/templates/res/icon/bada-wac/icon-80-type4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/bada-wac/icon-80-type4.png
--------------------------------------------------------------------------------
/app/templates/res/icon/bada/icon-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/bada/icon-128.png
--------------------------------------------------------------------------------
/app/templates/res/icon/blackberry/icon-80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/blackberry/icon-80.png
--------------------------------------------------------------------------------
/app/templates/res/icon/blackberry10/icon-80.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/blackberry10/icon-80.png
--------------------------------------------------------------------------------
/app/templates/res/icon/ios/icon-57-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/ios/icon-57-2x.png
--------------------------------------------------------------------------------
/app/templates/res/icon/ios/icon-57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/ios/icon-57.png
--------------------------------------------------------------------------------
/app/templates/res/icon/ios/icon-72-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/ios/icon-72-2x.png
--------------------------------------------------------------------------------
/app/templates/res/icon/ios/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/ios/icon-72.png
--------------------------------------------------------------------------------
/app/templates/res/icon/tizen/icon-128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/tizen/icon-128.png
--------------------------------------------------------------------------------
/app/templates/res/icon/webos/icon-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/webos/icon-64.png
--------------------------------------------------------------------------------
/app/templates/res/icon/windows-phone/icon-173-tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/windows-phone/icon-173-tile.png
--------------------------------------------------------------------------------
/app/templates/res/icon/windows-phone/icon-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/windows-phone/icon-48.png
--------------------------------------------------------------------------------
/app/templates/res/icon/windows-phone/icon-62-tile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/icon/windows-phone/icon-62-tile.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-hdpi-landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-hdpi-landscape.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-hdpi-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-hdpi-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-ldpi-landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-ldpi-landscape.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-ldpi-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-ldpi-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-mdpi-landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-mdpi-landscape.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-mdpi-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-mdpi-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-xhdpi-landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-xhdpi-landscape.png
--------------------------------------------------------------------------------
/app/templates/res/screen/android/screen-xhdpi-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/android/screen-xhdpi-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/bada-wac/screen-type3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/bada-wac/screen-type3.png
--------------------------------------------------------------------------------
/app/templates/res/screen/bada-wac/screen-type4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/bada-wac/screen-type4.png
--------------------------------------------------------------------------------
/app/templates/res/screen/bada-wac/screen-type5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/bada-wac/screen-type5.png
--------------------------------------------------------------------------------
/app/templates/res/screen/bada/screen-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/bada/screen-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/blackberry/screen-225.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/blackberry/screen-225.png
--------------------------------------------------------------------------------
/app/templates/res/screen/blackberry10/splash-1280x768.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/blackberry10/splash-1280x768.png
--------------------------------------------------------------------------------
/app/templates/res/screen/blackberry10/splash-720x720.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/blackberry10/splash-720x720.png
--------------------------------------------------------------------------------
/app/templates/res/screen/blackberry10/splash-768x1280.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/blackberry10/splash-768x1280.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-ipad-landscape-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-ipad-landscape-2x.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-ipad-landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-ipad-landscape.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-ipad-portrait-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-ipad-portrait-2x.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-ipad-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-ipad-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-iphone-landscape-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-iphone-landscape-2x.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-iphone-landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-iphone-landscape.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-iphone-portrait-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-iphone-portrait-2x.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-iphone-portrait-568h-2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-iphone-portrait-568h-2x.png
--------------------------------------------------------------------------------
/app/templates/res/screen/ios/screen-iphone-portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/ios/screen-iphone-portrait.png
--------------------------------------------------------------------------------
/app/templates/res/screen/webos/screen-64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/webos/screen-64.png
--------------------------------------------------------------------------------
/app/templates/res/screen/windows-phone/screen-portrait.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/res/screen/windows-phone/screen-portrait.jpg
--------------------------------------------------------------------------------
/app/templates/www/fonts/Framework7Icons-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/Framework7Icons-Regular.eot
--------------------------------------------------------------------------------
/app/templates/www/fonts/Framework7Icons-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/Framework7Icons-Regular.ttf
--------------------------------------------------------------------------------
/app/templates/www/fonts/Framework7Icons-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/Framework7Icons-Regular.woff
--------------------------------------------------------------------------------
/app/templates/www/fonts/Framework7Icons-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/Framework7Icons-Regular.woff2
--------------------------------------------------------------------------------
/app/templates/www/fonts/MaterialIcons-Regular.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/MaterialIcons-Regular.eot
--------------------------------------------------------------------------------
/app/templates/www/fonts/MaterialIcons-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/MaterialIcons-Regular.ttf
--------------------------------------------------------------------------------
/app/templates/www/fonts/MaterialIcons-Regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/MaterialIcons-Regular.woff
--------------------------------------------------------------------------------
/app/templates/www/fonts/MaterialIcons-Regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/fonts/MaterialIcons-Regular.woff2
--------------------------------------------------------------------------------
/app/templates/www/img/beach.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/beach.jpg
--------------------------------------------------------------------------------
/app/templates/www/img/f7-icon-square.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/f7-icon-square.png
--------------------------------------------------------------------------------
/app/templates/www/img/f7-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/f7-icon.png
--------------------------------------------------------------------------------
/app/templates/www/img/lock.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/lock.jpg
--------------------------------------------------------------------------------
/app/templates/www/img/monkey.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/monkey.jpg
--------------------------------------------------------------------------------
/app/templates/www/img/mountains.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/mountains.jpg
--------------------------------------------------------------------------------
/app/templates/www/img/vi-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/img/vi-icon.png
--------------------------------------------------------------------------------
/app/templates/www/js/app.js:
--------------------------------------------------------------------------------
1 | // Dom7
2 | var $ = Dom7;
3 |
4 | // Theme
5 | var theme = 'auto';
6 | if (document.location.search.indexOf('theme=') >= 0) {
7 | theme = document.location.search.split('theme=')[1].split('&')[0];
8 | }
9 |
10 | // Init App
11 | var app = new Framework7({
12 | id: 'io.framework7.testapp',
13 | root: '#app',
14 | theme: theme,
15 | data: function () {
16 | return {
17 | user: {
18 | firstName: 'John',
19 | lastName: 'Doe',
20 | },
21 | };
22 | },
23 | methods: {
24 | helloWorld: function () {
25 | app.dialog.alert('Hello World!');
26 | },
27 | },
28 | routes: routes,
29 | vi: {
30 | placementId: 'pltd4o7ibb9rc653x14',
31 | },
32 | });
33 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/badge/badge-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .badge {
4 | font-size: 13px;
5 | border-radius: 20px;
6 | padding: 0 6px;
7 | height: 20px;
8 | line-height: 20px;
9 | .item-after & {
10 | min-width: 20px;
11 | }
12 | }
13 | .icon, .f7-icons, .framework7-icons, .material-icons {
14 | .badge {
15 | line-height: 16px;
16 | height: 16px;
17 | border-radius: 16px;
18 | padding: 0 4px;
19 | min-width: 16px;
20 | font-family: -apple-system, SF UI Text, Helvetica Neue, Helvetica, Arial, sans-serif;
21 | font-size: 10px;
22 | }
23 | }
24 | .color-loop({
25 | .badge.color-@{colorName} {
26 | background-color: @colorValue;
27 | }
28 | });
29 | }
30 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/badge/badge-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .badge {
4 | font-size: 10px;
5 | border-radius: 3px;
6 | padding: 1px 6px;
7 | vertical-align: middle;
8 | }
9 | .icon, .f7-icons, .framework7-icons, .material-icons {
10 | .badge {
11 | line-height: 1.4;
12 | padding: 1px 5px;
13 | font-family: Roboto, Noto, Helvetica, Arial, sans-serif;
14 | font-size: 10px;
15 | }
16 | }
17 | .color-loop({
18 | .badge.color-@{colorName} {
19 | background-color: @colorValue;
20 | }
21 | });
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/badge/badge.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'badge',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/badge/badge.less:
--------------------------------------------------------------------------------
1 | /* === Badge === */
2 | .badge {
3 | display: inline-block;
4 | color: #fff;
5 | background: #8e8e93;
6 | position: relative;
7 | box-sizing: border-box;
8 | text-align: center;
9 | .icon &, .f7-icons &, .framework7-icons &, .material-icons & {
10 | position: absolute;
11 | left: 100%;
12 | margin-left: -10px;
13 | top: -2px;
14 | }
15 | }
16 |
17 | & when (@includeIosTheme) {
18 | @import url('./badge-ios.less');
19 | }
20 | & when (@includeMdTheme) {
21 | @import url('./badge-md.less');
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/block/block.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'block',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/button/button.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'button',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/card/card.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'card',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/checkbox/checkbox.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'checkbox',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/chip/chip.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'chip',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/contacts-list/contact-list.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'contactList',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/contacts-list/contacts-list-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .contacts-list {
4 | margin: 0;
5 | .list-group-title {
6 | padding: 0 15px;
7 | background: #f7f7f7;
8 | color: #000;
9 | font-weight: 600;
10 | line-height: 22px;
11 | height: 22px;
12 | }
13 | }
14 | // Dark Theme
15 | & when (@includeDarkTheme) {
16 | .theme-dark {
17 | .contacts-list, .contacts-list& {
18 | .list-group-title {
19 | background-color: #111;
20 | color: #fff;
21 | }
22 | }
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/contacts-list/contacts-list.less:
--------------------------------------------------------------------------------
1 | /* === Contacts === */
2 | .contacts-list {
3 | .list-group:first-child ul {
4 | .hairline-remove(top);
5 | }
6 | .list-group:last-child ul {
7 | .hairline-remove(bottom);
8 | }
9 | }
10 | & when (@includeIosTheme) {
11 | @import url('./contacts-list-ios.less');
12 | }
13 | & when (@includeMdTheme) {
14 | @import url('./contacts-list-md.less');
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/core/core-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | body {
4 | font-family: Roboto, Noto, Helvetica, Arial, sans-serif;
5 | color: #212121;
6 | line-height: 1.5;
7 | }
8 | .ios-only, .if-ios {
9 | display: none !important;
10 | }
11 | a {
12 | color: @themeColor;
13 | }
14 | // Dark Theme
15 | & when (@includeDarkTheme) {
16 | .theme-dark {
17 | color: rgba(255,255,255,0.87);
18 | }
19 | }
20 |
21 | .color-theme-loop({
22 | .color-theme-@{colorThemeName} {
23 | a {
24 | color: @colorThemeValue;
25 | }
26 | }
27 | });
28 | .color-loop({
29 | a.color-@{colorName} {
30 | color: @colorValue;
31 | }
32 | });
33 | }
34 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/grid/grid.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'grid',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/grid/grid.less:
--------------------------------------------------------------------------------
1 | /* === Grid === */
2 | .row {
3 | display: flex;
4 | justify-content: space-between;
5 | flex-wrap: wrap;
6 | align-items: flex-start;
7 | > [class*="col-"], > .col {
8 | box-sizing: border-box;
9 | }
10 | }
11 | @cols: 5, 10, 15, 20, 25, 30, 100/3, 35, 40, 45, 50, 55, 60, 65, 100*(2/3), 70, 75, 80, 85, 90, 95, 100;
12 | .row {
13 | .col {
14 | width: 100%;
15 | }
16 | }
17 |
18 | & when (@includeIosTheme) {
19 | @import url('./grid-ios.less');
20 | }
21 | & when (@includeMdTheme) {
22 | @import url('./grid-md.less');
23 | }
24 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/icon/icon.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'icon',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/icon/icon.less:
--------------------------------------------------------------------------------
1 | /* === Icon === */
2 | i.icon {
3 | display: inline-block;
4 | vertical-align: middle;
5 | background-size: 100% auto;
6 | background-position: center;
7 | background-repeat: no-repeat;
8 | font-style: normal;
9 | position: relative;
10 | }
11 |
12 | & when (@includeIosTheme) {
13 | @import url('./icon-ios.less');
14 | }
15 | & when (@includeMdTheme) {
16 | @import url('./icon-md.less');
17 | }
18 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/infinite-scroll/infinite-scroll-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | .infinite-scroll-preloader {
5 | margin-top: 35px;
6 | margin-bottom: 35px;
7 | .preloader, &.preloader {
8 | width: 27px;
9 | height: 27px;
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/infinite-scroll/infinite-scroll-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .infinite-scroll-preloader {
4 | margin-top: 32px;
5 | margin-bottom: 32px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/infinite-scroll/infinite-scroll.less:
--------------------------------------------------------------------------------
1 | /* === Infinite === */
2 | .infinite-scroll-preloader {
3 | margin-left: auto;
4 | margin-right: auto;
5 | text-align: center;
6 | &.preloader {
7 | display: block;
8 | }
9 | }
10 | & when (@includeIosTheme) {
11 | @import url('./infinite-scroll-ios.less');
12 | }
13 | & when (@includeMdTheme) {
14 | @import url('./infinite-scroll-md.less');
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/lazy/lazy-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/lazy/lazy-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/lazy/lazy.less:
--------------------------------------------------------------------------------
1 | /* === Images Lazy Loading === */
2 | .lazy-loaded.lazy-fade-in {
3 | animation: lazyFadeIn 600ms;
4 | }
5 |
6 | @keyframes lazyFadeIn {
7 | from {
8 | opacity: 0;
9 | }
10 | to {
11 | opacity: 1;
12 | }
13 | }
14 |
15 | & when (@includeIosTheme) {
16 | @import url('./lazy-ios.less');
17 | }
18 | & when (@includeMdTheme) {
19 | @import url('./lazy-md.less');
20 | }
21 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/link/link-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | .link {
3 | transition: opacity 300ms;
4 | i + span, i + i, span + i, span + span {
5 | .ltr({
6 | margin-left: 7px;
7 | });
8 | .rtl({
9 | margin-right: 7px;
10 | });
11 | }
12 | &.active-state {
13 | opacity: 0.3;
14 | transition-duration: 0ms;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/link/link-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | .link {
3 | i + span, i + i, span + i, span + span {
4 | .ltr({
5 | margin-left: 8px;
6 | });
7 | .rtl({
8 | margin-right: 8px;
9 | });
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/link/link.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'link',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/link/link.less:
--------------------------------------------------------------------------------
1 | /* === Link === */
2 | .link, .tab-link {
3 | display: inline-flex;
4 | align-items: center;
5 | align-content: center;
6 | justify-content: center;
7 | position: relative;
8 | box-sizing: border-box;
9 | transform: translate3d(0, 0, 0);
10 | z-index: 1;
11 | }
12 |
13 | & when (@includeIosTheme) {
14 | @import url('./link-ios.less');
15 | }
16 | & when (@includeMdTheme) {
17 | @import url('./link-md.less');
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/list/list.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'list',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/login-screen/login-screen-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .login-screen-content {
4 | .login-screen-title, .list, .block {
5 | margin: 25px auto;
6 | }
7 | }
8 | .login-screen-title {
9 | font-size: 30px;
10 | }
11 | // Dark Theme
12 | & when (@includeDarkTheme) {
13 | .theme-dark {
14 | .login-screen-content, .login-screen-content .list ul {
15 | background-color: transparent;
16 | }
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/login-screen/login-screen.js:
--------------------------------------------------------------------------------
1 | import LoginScreen from './login-screen-class';
2 | import ModalMethods from '../../utils/modal-methods';
3 |
4 | export default {
5 | name: 'loginScreen',
6 | static: {
7 | LoginScreen,
8 | },
9 | create() {
10 | const app = this;
11 | app.loginScreen = ModalMethods({
12 | app,
13 | constructor: LoginScreen,
14 | defaultSelector: '.login-screen.modal-in',
15 | });
16 | },
17 | clicks: {
18 | '.login-screen-open': function openLoginScreen($clickedEl, data = {}) {
19 | const app = this;
20 | app.loginScreen.open(data.loginScreen, data.animate);
21 | },
22 | '.login-screen-close': function closeLoginScreen($clickedEl, data = {}) {
23 | const app = this;
24 | app.loginScreen.close(data.loginScreen, data.animate);
25 | },
26 | },
27 | };
28 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/modal/modal.js:
--------------------------------------------------------------------------------
1 | import Modal from './modal-class';
2 | import CustomModal from './custom-modal-class';
3 |
4 | export default {
5 | name: 'modal',
6 | static: {
7 | Modal,
8 | CustomModal,
9 | },
10 | create() {
11 | const app = this;
12 | app.customModal = {
13 | create(params) {
14 | return new CustomModal(app, params);
15 | },
16 | };
17 | },
18 | params: {
19 | modal: {
20 | moveToRoot: true,
21 | queueDialogs: true,
22 | },
23 | },
24 | };
25 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/modal/modal.less:
--------------------------------------------------------------------------------
1 | .custom-modal-backdrop {
2 | .modal-backdrop();
3 | z-index: 10500;
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/page/page.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'page',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/page/page.less:
--------------------------------------------------------------------------------
1 | /* === Pages === */
2 | .pages {
3 | position: relative;
4 | width: 100%;
5 | height: 100%;
6 | overflow: hidden;
7 | }
8 | .page {
9 | box-sizing: border-box;
10 | position: absolute;
11 | left: 0;
12 | top: 0;
13 | width: 100%;
14 | height: 100%;
15 | transform: translate3d(0,0,0);
16 | &.stacked {
17 | display: none;
18 | }
19 | }
20 | .page-previous {
21 | pointer-events: none;
22 | }
23 | .page-content {
24 | .scrollable();
25 | box-sizing: border-box;
26 | height: 100%;
27 | position: relative;
28 | z-index: 1;
29 | }
30 |
31 | & when (@includeIosTheme) {
32 | @import url('./page-ios.less');
33 | }
34 | & when (@includeMdTheme) {
35 | @import url('./page-md.less');
36 | }
37 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/panel/panel-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .panel-backdrop {
4 | transition-duration: 400ms;
5 | background: rgba(0,0,0,0);
6 | }
7 | .panel {
8 | transition-duration: 400ms;
9 | }
10 | &.with-panel-left-reveal, &.with-panel-right-reveal, &.with-panel-transitioning {
11 | .views, .framework7-root > .view {
12 | transition-duration: 400ms;
13 | transition-property: transform;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/popup/popup-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/popup/popup-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | @media (min-width: 630px) and (min-height: 630px) {
4 | .popup:not(.popup-tablet-fullscreen) {
5 | box-shadow: 0px 20px 44px rgba(0,0,0,0.5);
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/popup/popup.js:
--------------------------------------------------------------------------------
1 | import Popup from './popup-class';
2 | import ModalMethods from '../../utils/modal-methods';
3 |
4 | export default {
5 | name: 'popup',
6 | params: {
7 | popup: {
8 | backdrop: true,
9 | closeByBackdropClick: true,
10 | },
11 | },
12 | static: {
13 | Popup,
14 | },
15 | create() {
16 | const app = this;
17 | app.popup = ModalMethods({
18 | app,
19 | constructor: Popup,
20 | defaultSelector: '.popup.modal-in',
21 | });
22 | },
23 | clicks: {
24 | '.popup-open': function openPopup($clickedEl, data = {}) {
25 | const app = this;
26 | app.popup.open(data.popup, data.animate);
27 | },
28 | '.popup-close': function closePopup($clickedEl, data = {}) {
29 | const app = this;
30 | app.popup.close(data.popup, data.animate);
31 | },
32 | },
33 | };
34 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/preloader/preloader.less:
--------------------------------------------------------------------------------
1 | /* === Preloader === */
2 | .preloader {
3 | display: inline-block;
4 | vertical-align: middle;
5 | }
6 |
7 | /* === Preloader Modal === */
8 | .preloader-backdrop {
9 | .modal-backdrop();
10 | visibility: visible;
11 | opacity: 0;
12 | background: none;
13 | }
14 | .preloader-modal {
15 | position: absolute;
16 | left: 50%;
17 | top: 50%;
18 | padding: 8px;
19 | background: rgba(0,0,0,0.8);
20 | z-index: 13500;
21 | transform: translateX(-50%) translateY(-50%);
22 | .preloader {
23 | display: block !important;
24 | }
25 | }
26 | html.with-modal-preloader {
27 | .page-content {
28 | .not-scrollable();
29 | }
30 | }
31 | & when (@includeIosTheme) {
32 | @import url('./preloader-ios.less');
33 | }
34 | & when (@includeMdTheme) {
35 | @import url('./preloader-md.less');
36 | }
37 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/pull-to-refresh/pull-to-refresh.less:
--------------------------------------------------------------------------------
1 | /* === PTR === */
2 | .ptr-preloader {
3 | .preloader {
4 | position: absolute;
5 | left: 50%;
6 | }
7 | }
8 | & when (@includeIosTheme) {
9 | @import url('./pull-to-refresh-ios.less');
10 | }
11 | & when (@includeMdTheme) {
12 | @import url('./pull-to-refresh-md.less');
13 | }
14 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/radio/radio.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'radio',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/smart-select/smart-select-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | @import (multiple) '../../less/vars-ios.less';
4 | .smart-select-sheet {
5 | .page {
6 | background: #fff;
7 | }
8 | }
9 | .hairline-root('.smart-select-sheet .toolbar', bottom, @barsBorderColor);
10 | // Dark Theme
11 | & when (@includeDarkTheme) {
12 | .theme-dark {
13 | .smart-select-sheet .page,
14 | .smart-select-sheet .sheet-modal-inner {
15 | background-color: @blockBgDark;
16 | }
17 | .smart-select-sheet .toolbar {
18 | .hairline-color(bottom, @barsBorderColorDark);
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/smart-select/smart-select-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | // Dark Theme
4 | & when (@includeDarkTheme) {
5 | .theme-dark {
6 | .sheet-modal.smart-select-sheet .sheet-modal-inner {
7 | background-color: transparent;
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/smart-select/smart-select.less:
--------------------------------------------------------------------------------
1 | /* === Smart Select === */
2 | .smart-select {
3 | select {
4 | display: none;
5 | }
6 | .item-after {
7 | max-width: 70%;
8 | overflow: hidden;
9 | text-overflow: ellipsis;
10 | position: relative;
11 | display: block;
12 | }
13 |
14 | }
15 | .sheet-modal.smart-select-sheet {
16 | .sheet-modal-inner {
17 | background: #fff;
18 | }
19 | .list {
20 | margin: 0;
21 | ul {
22 | .hairline-remove(top);
23 | .hairline-remove(bottom);
24 | }
25 | }
26 | }
27 | .smart-select-popover .popover-inner {
28 | max-height: 40vh;
29 | }
30 | & when (@includeIosTheme) {
31 | @import url('./smart-select-ios.less');
32 | }
33 | & when (@includeMdTheme) {
34 | @import url('./smart-select-md.less');
35 | }
36 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/statusbar/statusbar-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | @import (multiple) '../../less/vars-ios.less';
4 | .statusbar {
5 | background: #f7f7f8;
6 | }
7 | // Dark Theme
8 | & when (@includeDarkTheme) {
9 | .theme-dark {
10 | .statusbar {
11 | background-color: @barsBgDark;
12 | }
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/statusbar/statusbar-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .statusbar {
4 | background: darken(@themeColor, 15%);
5 | }
6 | .color-theme-loop({
7 | .color-theme-@{colorThemeName} .statusbar {
8 | background: darken(@colorThemeValue, 15%);
9 | }
10 | });
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/subnavbar/subnavbar.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'subnavbar',
3 | on: {
4 | pageInit(page) {
5 | if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) {
6 | page.$el.addClass('page-with-subnavbar');
7 | }
8 | if (page.$el.find('.subnavbar').length) {
9 | page.$el.addClass('page-with-subnavbar');
10 | }
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swipeout/swipeout-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 | .swipeout-actions-left, .swipeout-actions-right {
4 | > a, > button, > span, > div {
5 | padding: 0 30px;
6 | color: #fff;
7 | }
8 | .swipeout-delete {
9 | background: @red;
10 | }
11 | }
12 | .color-loop({
13 | .swipeout-actions-left, .swipeout-actions-right {
14 | > a, > button, > span, > div {
15 | &.color-@{colorName} {
16 | background-color: @colorValue;
17 | }
18 | }
19 | }
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swipeout/swipeout-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 | .swipeout-actions-left, .swipeout-actions-right {
4 | > a, > button, > span, > div {
5 | padding: 0 24px;
6 | color: #fff;
7 | }
8 | .swipeout-delete {
9 | background: @red;
10 | }
11 | }
12 | .color-loop({
13 | .swipeout-actions-left, .swipeout-actions-right {
14 | > a, > button, > span, > div {
15 | &.color-@{colorName} {
16 | background-color: @colorValue;
17 | }
18 | }
19 | }
20 | });
21 | }
22 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/a11y/a11y.less:
--------------------------------------------------------------------------------
1 | /* a11y */
2 | .swiper-container .swiper-notification {
3 | position: absolute;
4 | left: 0;
5 | top: 0;
6 | pointer-events: none;
7 | opacity: 0;
8 | z-index: -1000;
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/controller/controller.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/lib/components/swiper/swiper-class/components/controller/controller.less
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/breakpoints/getBreakpoint.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | export default function (breakpoints) {
4 | // Get breakpoint for window width
5 | if (!breakpoints) return undefined;
6 | let breakpoint = false;
7 | const points = [];
8 | Object.keys(breakpoints).forEach((point) => {
9 | points.push(point);
10 | });
11 | points.sort((a, b) => parseInt(a, 10) - parseInt(b, 10));
12 | for (let i = 0; i < points.length; i += 1) {
13 | const point = points[i];
14 | if (point >= window.innerWidth && !breakpoint) {
15 | breakpoint = point;
16 | }
17 | }
18 | return breakpoint || 'max';
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/breakpoints/index.js:
--------------------------------------------------------------------------------
1 | import setBreakpoint from './setBreakpoint';
2 | import getBreakpoint from './getBreakpoint';
3 |
4 | export default { setBreakpoint, getBreakpoint };
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/check-overflow/index.js:
--------------------------------------------------------------------------------
1 |
2 | function checkOverflow() {
3 | const swiper = this;
4 | const wasLocked = swiper.isLocked;
5 |
6 | swiper.isLocked = swiper.snapGrid.length === 1;
7 | swiper.allowSlideNext = !swiper.isLocked;
8 | swiper.allowSlidePrev = !swiper.isLocked;
9 |
10 | // events
11 | if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
12 |
13 | if (wasLocked && wasLocked !== swiper.isLocked) {
14 | swiper.isEnd = false;
15 | swiper.navigation.update();
16 | }
17 | }
18 |
19 | export default { checkOverflow };
20 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/classes/index.js:
--------------------------------------------------------------------------------
1 | import addClasses from './addClasses';
2 | import removeClasses from './removeClasses';
3 |
4 | export default { addClasses, removeClasses };
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/classes/removeClasses.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const { $el, classNames } = swiper;
4 |
5 | $el.removeClass(classNames.join(' '));
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/events/onClick.js:
--------------------------------------------------------------------------------
1 | export default function (e) {
2 | const swiper = this;
3 | if ("universal" === 'desktop') {
4 | swiper.emit('tap click', e);
5 | } else if (!swiper.allowClick) {
6 | if (swiper.params.preventClicks) e.preventDefault();
7 | if (swiper.params.preventClicksPropagation && swiper.animating) {
8 | e.stopPropagation();
9 | e.stopImmediatePropagation();
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/grab-cursor/index.js:
--------------------------------------------------------------------------------
1 | import setGrabCursor from './setGrabCursor';
2 | import unsetGrabCursor from './unsetGrabCursor';
3 |
4 | export default {
5 | setGrabCursor,
6 | unsetGrabCursor,
7 | };
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/grab-cursor/setGrabCursor.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (moving) {
4 | const swiper = this;
5 | if (Support.touch || !swiper.params.simulateTouch) return;
6 | const el = swiper.el;
7 | el.style.cursor = 'move';
8 | el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';
9 | el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';
10 | el.style.cursor = moving ? 'grabbing' : 'grab';
11 | }
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/grab-cursor/unsetGrabCursor.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function () {
4 | const swiper = this;
5 | if (Support.touch) return;
6 | swiper.el.style.cursor = '';
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/images/index.js:
--------------------------------------------------------------------------------
1 | import loadImage from './loadImage';
2 | import preloadImages from './preloadImages';
3 |
4 | export default {
5 | loadImage,
6 | preloadImages,
7 | };
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/images/loadImage.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | export default function (imageEl, src, srcset, sizes, checkForComplete, callback) {
4 | let image;
5 | function onReady() {
6 | if (callback) callback();
7 | }
8 | if (!imageEl.complete || !checkForComplete) {
9 | if (src) {
10 | image = new window.Image();
11 | image.onload = onReady;
12 | image.onerror = onReady;
13 | if (sizes) {
14 | image.sizes = sizes;
15 | }
16 | if (srcset) {
17 | image.srcset = srcset;
18 | }
19 | if (src) {
20 | image.src = src;
21 | }
22 | } else {
23 | onReady();
24 | }
25 | } else {
26 | // image already loaded...
27 | onReady();
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/loop/index.js:
--------------------------------------------------------------------------------
1 | import loopCreate from './loopCreate';
2 | import loopFix from './loopFix';
3 | import loopDestroy from './loopDestroy';
4 |
5 | export default {
6 | loopCreate,
7 | loopFix,
8 | loopDestroy,
9 | };
10 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/loop/loopDestroy.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const { $wrapperEl, params, slides } = swiper;
4 | $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();
5 | slides.removeAttr('data-swiper-slide-index');
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/manipulation/appendSlide.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (slides) {
4 | const swiper = this;
5 | const { $wrapperEl, params } = swiper;
6 | if (params.loop) {
7 | swiper.loopDestroy();
8 | }
9 | if (typeof slides === 'object' && 'length' in slides) {
10 | for (let i = 0; i < slides.length; i += 1) {
11 | if (slides[i]) $wrapperEl.append(slides[i]);
12 | }
13 | } else {
14 | $wrapperEl.append(slides);
15 | }
16 | if (params.loop) {
17 | swiper.loopCreate();
18 | }
19 | if (!(params.observer && Support.observer)) {
20 | swiper.update();
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/manipulation/index.js:
--------------------------------------------------------------------------------
1 | import appendSlide from './appendSlide';
2 | import prependSlide from './prependSlide';
3 | import removeSlide from './removeSlide';
4 | import removeAllSlides from './removeAllSlides';
5 |
6 | export default {
7 | appendSlide,
8 | prependSlide,
9 | removeSlide,
10 | removeAllSlides,
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/manipulation/prependSlide.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../utils/support';
2 |
3 | export default function (slides) {
4 | const swiper = this;
5 | const { params, $wrapperEl, activeIndex } = swiper;
6 |
7 | if (params.loop) {
8 | swiper.loopDestroy();
9 | }
10 | let newActiveIndex = activeIndex + 1;
11 | if (typeof slides === 'object' && 'length' in slides) {
12 | for (let i = 0; i < slides.length; i += 1) {
13 | if (slides[i]) $wrapperEl.prepend(slides[i]);
14 | }
15 | newActiveIndex = activeIndex + slides.length;
16 | } else {
17 | $wrapperEl.prepend(slides);
18 | }
19 | if (params.loop) {
20 | swiper.loopCreate();
21 | }
22 | if (!(params.observer && Support.observer)) {
23 | swiper.update();
24 | }
25 | swiper.slideTo(newActiveIndex, 0, false);
26 | }
27 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/manipulation/removeAllSlides.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 |
4 | const slidesIndexes = [];
5 | for (let i = 0; i < swiper.slides.length; i += 1) {
6 | slidesIndexes.push(i);
7 | }
8 | swiper.removeSlide(slidesIndexes);
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/slide/index.js:
--------------------------------------------------------------------------------
1 | import slideTo from './slideTo';
2 | import slideToLoop from './slideToLoop';
3 | import slideNext from './slideNext';
4 | import slidePrev from './slidePrev';
5 | import slideReset from './slideReset';
6 | import slideToClosest from './slideToClosest';
7 | import slideToClickedSlide from './slideToClickedSlide';
8 |
9 | export default {
10 | slideTo,
11 | slideToLoop,
12 | slideNext,
13 | slidePrev,
14 | slideReset,
15 | slideToClosest,
16 | slideToClickedSlide,
17 | };
18 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/slide/slideNext.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | const { params, animating } = swiper;
5 | if (params.loop) {
6 | if (animating) return false;
7 | swiper.loopFix();
8 | // eslint-disable-next-line
9 | swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;
10 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
11 | }
12 | return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal);
13 | }
14 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/slide/slideReset.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
5 | }
6 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/slide/slideToClosest.js:
--------------------------------------------------------------------------------
1 | /* eslint no-unused-vars: "off" */
2 | export default function (speed = this.params.speed, runCallbacks = true, internal) {
3 | const swiper = this;
4 | let index = swiper.activeIndex;
5 | const snapIndex = Math.floor(index / swiper.params.slidesPerGroup);
6 |
7 | if (snapIndex < swiper.snapGrid.length - 1) {
8 | const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
9 |
10 | const currentSnap = swiper.snapGrid[snapIndex];
11 | const nextSnap = swiper.snapGrid[snapIndex + 1];
12 |
13 | if ((translate - currentSnap) > (nextSnap - currentSnap) / 2) {
14 | index = swiper.params.slidesPerGroup;
15 | }
16 | }
17 |
18 | return swiper.slideTo(index, speed, runCallbacks, internal);
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/slide/slideToLoop.js:
--------------------------------------------------------------------------------
1 | export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {
2 | const swiper = this;
3 | let newIndex = index;
4 | if (swiper.params.loop) {
5 | newIndex += swiper.loopedSlides;
6 | }
7 |
8 | return swiper.slideTo(newIndex, speed, runCallbacks, internal);
9 | }
10 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/transition/index.js:
--------------------------------------------------------------------------------
1 | import setTransition from './setTransition';
2 | import transitionStart from './transitionStart';
3 | import transitionEnd from './transitionEnd';
4 |
5 | export default {
6 | setTransition,
7 | transitionStart,
8 | transitionEnd,
9 | };
10 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/transition/setTransition.js:
--------------------------------------------------------------------------------
1 | export default function (duration, byController) {
2 | const swiper = this;
3 |
4 | swiper.$wrapperEl.transition(duration);
5 |
6 | swiper.emit('setTransition', duration, byController);
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/translate/getTranslate.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../../utils/utils';
2 |
3 | export default function (axis = this.isHorizontal() ? 'x' : 'y') {
4 | const swiper = this;
5 |
6 | const {
7 | params, rtlTranslate: rtl, translate, $wrapperEl,
8 | } = swiper;
9 |
10 | if (params.virtualTranslate) {
11 | return rtl ? -translate : translate;
12 | }
13 |
14 | let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);
15 | if (rtl) currentTranslate = -currentTranslate;
16 |
17 | return currentTranslate || 0;
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/translate/index.js:
--------------------------------------------------------------------------------
1 | import getTranslate from './getTranslate';
2 | import setTranslate from './setTranslate';
3 | import minTranslate from './minTranslate';
4 | import maxTranslate from './maxTranslate';
5 |
6 | export default {
7 | getTranslate,
8 | setTranslate,
9 | minTranslate,
10 | maxTranslate,
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/translate/maxTranslate.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return (-this.snapGrid[this.snapGrid.length - 1]);
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/translate/minTranslate.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return (-this.snapGrid[0]);
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/update/index.js:
--------------------------------------------------------------------------------
1 | import updateSize from './updateSize';
2 | import updateSlides from './updateSlides';
3 | import updateAutoHeight from './updateAutoHeight';
4 | import updateSlidesOffset from './updateSlidesOffset';
5 | import updateSlidesProgress from './updateSlidesProgress';
6 | import updateProgress from './updateProgress';
7 | import updateSlidesClasses from './updateSlidesClasses';
8 | import updateActiveIndex from './updateActiveIndex';
9 | import updateClickedSlide from './updateClickedSlide';
10 |
11 | export default {
12 | updateSize,
13 | updateSlides,
14 | updateAutoHeight,
15 | updateSlidesOffset,
16 | updateSlidesProgress,
17 | updateProgress,
18 | updateSlidesClasses,
19 | updateActiveIndex,
20 | updateClickedSlide,
21 | };
22 |
23 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/core/update/updateSlidesOffset.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | const swiper = this;
3 | const slides = swiper.slides;
4 | for (let i = 0; i < slides.length; i += 1) {
5 | slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/effect-coverflow/effect-coverflow.less:
--------------------------------------------------------------------------------
1 | .swiper-container-coverflow {
2 | .swiper-wrapper {
3 | /* Windows 8 IE 10 fix */
4 | -ms-perspective: 1200px;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/effect-fade/effect-fade.less:
--------------------------------------------------------------------------------
1 | .swiper-container-fade {
2 | &.swiper-container-free-mode {
3 | .swiper-slide {
4 | transition-timing-function: ease-out;
5 | }
6 | }
7 | .swiper-slide {
8 | pointer-events: none;
9 | transition-property: opacity;
10 | .swiper-slide {
11 | pointer-events: none;
12 | }
13 | }
14 | .swiper-slide-active {
15 | &, & .swiper-slide-active {
16 | pointer-events: auto;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/effect-flip/effect-flip.less:
--------------------------------------------------------------------------------
1 | .swiper-container-flip {
2 | overflow: visible;
3 | .swiper-slide {
4 | pointer-events: none;
5 | backface-visibility: hidden;
6 | z-index: 1;
7 | .swiper-slide {
8 | pointer-events: none;
9 | }
10 | }
11 | .swiper-slide-active {
12 | &, & .swiper-slide-active {
13 | pointer-events: auto;
14 | }
15 | }
16 | .swiper-slide-shadow-top, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left, .swiper-slide-shadow-right {
17 | z-index: 0;
18 | backface-visibility: hidden;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/scrollbar/scrollbar.less:
--------------------------------------------------------------------------------
1 | /* Scrollbar */
2 | .swiper-scrollbar {
3 | border-radius: 10px;
4 | position: relative;
5 | -ms-touch-action: none;
6 | background: rgba(0,0,0,0.1);
7 | .swiper-container-horizontal > & {
8 | position: absolute;
9 | left: 1%;
10 | bottom: 3px;
11 | z-index: 50;
12 | height: 5px;
13 | width: 98%;
14 | }
15 | .swiper-container-vertical > & {
16 | position: absolute;
17 | right: 3px;
18 | top: 1%;
19 | z-index: 50;
20 | width: 5px;
21 | height: 98%;
22 | }
23 | }
24 | .swiper-scrollbar-drag {
25 | height: 100%;
26 | width: 100%;
27 | position: relative;
28 | background: rgba(0,0,0,0.5);
29 | border-radius: 10px;
30 | left: 0;
31 | top: 0;
32 | }
33 | .swiper-scrollbar-cursor-drag {
34 | cursor: move;
35 | }
36 | .swiper-scrollbar-lock {
37 | display: none;
38 | }
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/components/zoom/zoom.less:
--------------------------------------------------------------------------------
1 | .swiper-zoom-container {
2 | width: 100%;
3 | height: 100%;
4 | display: flex;
5 | justify-content: center;
6 | align-items: center;
7 | text-align: center;
8 |
9 | > img, > svg, > canvas {
10 | max-width: 100%;
11 | max-height: 100%;
12 | object-fit: contain;
13 | }
14 | }
15 |
16 | .swiper-slide-zoomed {
17 | cursor: move;
18 | }
19 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/modules/browser/browser.js:
--------------------------------------------------------------------------------
1 | import Browser from '../../utils/browser';
2 |
3 | export default {
4 | name: 'browser',
5 | proto: {
6 | browser: Browser,
7 | },
8 | static: {
9 | browser: Browser,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/modules/device/device.js:
--------------------------------------------------------------------------------
1 | import Device from '../../utils/device';
2 |
3 | export default {
4 | name: 'device',
5 | proto: {
6 | device: Device,
7 | },
8 | static: {
9 | device: Device,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/modules/resize/resize.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/lib/components/swiper/swiper-class/modules/resize/resize.less
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/modules/support/support.js:
--------------------------------------------------------------------------------
1 | import Support from '../../utils/support';
2 |
3 | export default {
4 | name: 'support',
5 | proto: {
6 | support: Support,
7 | },
8 | static: {
9 | support: Support,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/swiper.less:
--------------------------------------------------------------------------------
1 | @import url('./less/mixins.less');
2 |
3 | @themeColor: $themeColor;
4 | @colors: $colors;
5 |
6 | @import url('./components/core/core.less');
7 |
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/browser.js:
--------------------------------------------------------------------------------
1 | import { window } from 'ssr-window';
2 |
3 | const Browser = (function Browser() {
4 | function isSafari() {
5 | const ua = window.navigator.userAgent.toLowerCase();
6 | return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);
7 | }
8 | return {
9 | isIE: !!window.navigator.userAgent.match(/Trident/g) || !!window.navigator.userAgent.match(/MSIE/g),
10 | isSafari: isSafari(),
11 | isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),
12 | };
13 | }());
14 |
15 | export default Browser;
16 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/class.js:
--------------------------------------------------------------------------------
1 | import Framework7Class from '../../../../utils/class';
2 |
3 | export default Framework7Class;
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/device.js:
--------------------------------------------------------------------------------
1 | import Device from '../../../../utils/device';
2 |
3 | export default Device;
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/document.js:
--------------------------------------------------------------------------------
1 | export default document;
2 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/dom.js:
--------------------------------------------------------------------------------
1 | import $ from 'dom7';
2 |
3 | export default $;
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/support.js:
--------------------------------------------------------------------------------
1 | import Support from '../../../../utils/support';
2 |
3 | export default Support;
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/utils.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../../../utils/utils';
2 |
3 | export default Utils;
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/swiper/swiper-class/utils/window.js:
--------------------------------------------------------------------------------
1 | export default window;
2 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/tabs/tabs-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/tabs/tabs-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/timeline/timeline.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'timeline',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/touch-ripple/touch-ripple-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 |
3 | }
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/touch-ripple/touch-ripple.js:
--------------------------------------------------------------------------------
1 | import TouchRipple from './touch-ripple-class';
2 |
3 | export default {
4 | name: 'touch-ripple',
5 | static: {
6 | TouchRipple,
7 | },
8 | create() {
9 | const app = this;
10 | app.touchRipple = {
11 | create(...args) {
12 | return new TouchRipple(...args);
13 | },
14 | };
15 | },
16 | };
17 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/touch-ripple/touch-ripple.less:
--------------------------------------------------------------------------------
1 | /* === Touch Ripple === */
2 | & when (@includeIosTheme) {
3 | @import url('./touch-ripple-ios.less');
4 | }
5 | & when (@includeMdTheme) {
6 | @import url('./touch-ripple-md.less');
7 | }
8 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/typography/typography.js:
--------------------------------------------------------------------------------
1 | export default {
2 | name: 'typography',
3 | };
4 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/vi/vi-ios.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/lib/components/vi/vi-ios.less
--------------------------------------------------------------------------------
/app/templates/www/lib/components/vi/vi-md.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/arvindr21/generator-framework7-phonegap/4458d8219743d4ba41ca0823629b3131e39a70c4/app/templates/www/lib/components/vi/vi-md.less
--------------------------------------------------------------------------------
/app/templates/www/lib/components/view/view.less:
--------------------------------------------------------------------------------
1 | /* === Views === */
2 | .views, .view {
3 | position: relative;
4 | height: 100%;
5 | z-index: 5000;
6 | overflow: hidden;
7 | box-sizing: border-box;
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/virtual-list/virtual-list-ios.less:
--------------------------------------------------------------------------------
1 | .ios {
2 | @import (multiple) '../../less/colors-ios.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/virtual-list/virtual-list-md.less:
--------------------------------------------------------------------------------
1 | .md {
2 | @import (multiple) '../../less/colors-md.less';
3 |
4 | }
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/virtual-list/virtual-list.js:
--------------------------------------------------------------------------------
1 | import VirtualList from './virtual-list-class';
2 | import ConstructorMethods from '../../utils/constructor-methods';
3 |
4 | export default {
5 | name: 'virtualList',
6 | static: {
7 | VirtualList,
8 | },
9 | create() {
10 | const app = this;
11 | app.virtualList = ConstructorMethods({
12 | defaultSelector: '.virtual-list',
13 | constructor: VirtualList,
14 | app,
15 | domProp: 'f7VirtualList',
16 | });
17 | },
18 | };
19 |
--------------------------------------------------------------------------------
/app/templates/www/lib/components/virtual-list/virtual-list.less:
--------------------------------------------------------------------------------
1 | /* === Virtual List === */
2 |
3 | & when (@includeIosTheme) {
4 | @import url('./virtual-list-ios.less');
5 | }
6 | & when (@includeMdTheme) {
7 | @import url('./virtual-list-md.less');
8 | }
9 |
--------------------------------------------------------------------------------
/app/templates/www/lib/less/colors-ios.less:
--------------------------------------------------------------------------------
1 | @red: #ff3b30;
2 | @themeColor: @themeColorIos;
3 |
4 | @colors: @colorsIos;
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/less/colors-md.less:
--------------------------------------------------------------------------------
1 | @red: #f44336;
2 | @themeColor: @themeColorMd;
3 |
4 | @colors: @colorsMd;
5 |
--------------------------------------------------------------------------------
/app/templates/www/lib/less/vars-md.less:
--------------------------------------------------------------------------------
1 | @blockBorderColor: rgba(0,0,0,0.12);
2 | @blockBorderColorDark: rgba(255,255,255,0.08);
3 | @blockBgDark: rgba(255,255,255,0.03);
4 | @barsBg: @themeColor;
5 | @navbarSize: 56px;
6 | @navbarSizeTablet: 64px;
7 | @navbarBg: @barsBg;
8 | @toolbarBg: @barsBg;
9 | @toolbarColor: #fff;
10 | @toolbarLinkColor: #fff;
11 | @toolbarSize: 48px;
12 | @tabbarLabelsSize: 72px;
13 | @tabbarLabelsBottomSize: 56px;
14 | @tabbarLinkColor: rgba(255,255,255,0.7);
15 | @tabbarActiveLinkColor: rgba(255,255,255,1);
16 | @searchbarSize: 48px;
17 | @searchbarBg: #fff;
18 | @messageReceivedBg: #fff;
19 | @messageReceivedColor: #333;
20 | @messageSentBg: #c8e6c9;
21 | @messageSentColor: #333;
22 |
--------------------------------------------------------------------------------
/app/templates/www/lib/modules/history/history.js:
--------------------------------------------------------------------------------
1 | import History from '../../utils/history';
2 |
3 | export default {
4 | name: 'history',
5 | static: {
6 | history: History,
7 | },
8 | on: {
9 | init() {
10 | History.init(this);
11 | },
12 | },
13 | };
14 |
--------------------------------------------------------------------------------
/app/templates/www/lib/modules/request/request.js:
--------------------------------------------------------------------------------
1 | /* eslint no-param-reassign: "off" */
2 | import Request from '../../utils/request';
3 |
4 | export default {
5 | name: 'request',
6 | proto: {
7 | request: Request,
8 | },
9 | static: {
10 | request: Request,
11 | },
12 | };
13 |
--------------------------------------------------------------------------------
/app/templates/www/lib/modules/router/router.js:
--------------------------------------------------------------------------------
1 | import Router from './router-class';
2 |
3 | export default {
4 | name: 'router',
5 | static: {
6 | Router,
7 | },
8 | instance: {
9 | cache: {
10 | xhr: [],
11 | templates: [],
12 | components: [],
13 | },
14 | },
15 | create() {
16 | const instance = this;
17 | if (instance.app) {
18 | // View Router
19 | if (instance.params.router) {
20 | instance.router = new Router(instance.app, instance);
21 | }
22 | } else {
23 | // App Router
24 | instance.router = new Router(instance);
25 | }
26 | },
27 | };
28 |
29 |
--------------------------------------------------------------------------------
/app/templates/www/lib/modules/support/support.js:
--------------------------------------------------------------------------------
1 | import { document } from 'ssr-window';
2 | import Support from '../../utils/support';
3 |
4 | export default {
5 | name: 'support',
6 | proto: {
7 | support: Support,
8 | },
9 | static: {
10 | support: Support,
11 | },
12 | on: {
13 | init() {
14 | const html = document.querySelector('html');
15 | if (!html) return;
16 | const classNames = [];
17 | if (Support.positionSticky) {
18 | classNames.push('support-position-sticky');
19 | }
20 | // Add html classes
21 | classNames.forEach((className) => {
22 | html.classList.add(className);
23 | });
24 | },
25 | },
26 | };
27 |
--------------------------------------------------------------------------------
/app/templates/www/lib/modules/utils/utils.js:
--------------------------------------------------------------------------------
1 | import Utils from '../../utils/utils';
2 |
3 | export default {
4 | name: 'utils',
5 | proto: {
6 | utils: Utils,
7 | },
8 | static: {
9 | utils: Utils,
10 | },
11 | };
12 |
--------------------------------------------------------------------------------
/app/templates/www/pages/404.html:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
Sorry
16 |
Requested content not found.
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/app/templates/www/pages/tabs.html:
--------------------------------------------------------------------------------
1 |
32 |
--------------------------------------------------------------------------------
/app/templates/www/pages/timeline.html:
--------------------------------------------------------------------------------
1 |
30 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "generator-framework7-phonegap",
3 | "version": "0.1.2",
4 | "description": "Yeoman generator",
5 | "license": "MIT",
6 | "main": "app/index.js",
7 | "repository": "arvindr21/generator-framework7-phonegap",
8 | "author": {
9 | "name": "Arvind Ravulavaru",
10 | "email": "",
11 | "url": "https://github.com/arvindr21"
12 | },
13 | "engines": {
14 | "node": ">=0.10.0"
15 | },
16 | "scripts": {
17 | "test": "mocha"
18 | },
19 | "files": [
20 | "app"
21 | ],
22 | "keywords": [
23 | "yeoman-generator",
24 | "framwork7",
25 | "phonegap"
26 | ],
27 | "dependencies": {
28 | "yeoman-generator": "~0.16.0",
29 | "chalk": "~0.4.0",
30 | "yosay": "^0.1.0"
31 | },
32 | "devDependencies": {
33 | "mocha": "*"
34 | },
35 | "peerDependencies": {
36 | "yo": ">=1.0.0"
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/test/test-load.js:
--------------------------------------------------------------------------------
1 | /*global describe, beforeEach, it*/
2 | 'use strict';
3 | var assert = require('assert');
4 |
5 | describe('framework7-phonegap generator', function () {
6 | it('can be imported without blowing up', function () {
7 | var app = require('../app');
8 | assert(app !== undefined);
9 | });
10 | });
11 |
--------------------------------------------------------------------------------