framework7-without-localstorage
Version:
Full featured mobile HTML framework for building iOS & Android apps
757 lines (732 loc) • 83.7 kB
Markdown
# Change Log
## Framework7 v1.6.5 - Updated on September 7, 2017
* Searchbar will remove accents (removeDiacritics: true) by default now
* Fix issue with wrong element selected when scrolling on iOS
* Data Table header "select all" checkbox will now only select checkboxes in same columns
* Added `timeline` to custom build
* Update Dom7 to latest version addresing issue with throwing error in cordova "resume" event (when there is no event target)
* Update Template7 to latest version:
* Fixed issue with not being able to access parent context `../`
* `js_compare` helper has been renamed to `js_if` helper. `js_compare` is still available for backwards compatibility
* Added support for `@index`, `@first`, `@last`, `@key`, `@root`, `@global` variables to `js` and `js_if` helpers
* Added support for parent access (e.g. `../title`) to `js` and `js_if` helpers
* Added support for parent data access within loops, e.g. `../../@index`
* Minor fixes
## Framework7 v1.6.4 - Updated on May 31, 2017
* Fixed issue with Dom7 and Template7 being missing when using bundler
## Framework7 v1.6.3 - Updated on May 30, 2017
* Dom7
* Added missing shortcut methods `click blur focus focusin focusout keyup keydown keypress submit change mousedown mousemove mouseup mouseenter mouseleave mouseout mouseover touchstart touchend touchmove resize scroll`
## Framework7 v1.6.2 - Updated on May 29, 2017
* Virtual List
* New `renderExternal` callback parameter that allows to render DOM items using some custom method. Useful in case it is used with Vue plugin to pass DOM rendering and manipulation to Vue
* Pull To Refresh
* Fixed issue with its destory method when used in multiple tabs on single page to destroy it only in specified tab
* Autocomplete
* Fixed issues with not being used `valueProperty` on input
* iOS
* A bit improved page transitions performance using fake opacity layer instead of changing opacity of whole page
* Dom7
* Now it is used as a standalone library from https://github.com/nolimits4web/Dom7
* New `Dom7.extend(obj1, obj2, ...)` method to clone/extend objects
* Proxified events. Now all events are being added/removed using proxy functions. This allows to pass additional arguments to events handlers and detach all assigned event listeners by calling e.g. `$$(document).off('someEvent');`
## Framework7 v1.6.0 - Updated on April 10, 2017
* New Data Table component
* Lazy Loading
* Lazy image placeholder can be specified in `src` image attribute
* New callbacks in app parameters: `onLazyLoad`, `onLazyLoaded`, `onLazyError`
* Panels
* Fixed issues with swipe panels
* Modals
* New `popoverCloseByOutside` parameter to define wheter popover should be closed on outside (overlay) click or not. Enabled by default
* Minor fixes
## Framework7 v1.5.4 - Updated on March 13, 2017
* Panels
* A bit reworked Panels layout/styling in favor of`translate` CSS property. May required small CSS fixes after update if you have changed panels sizes
* Panels Breakpoints. Two new app parameters `panelLeftBreakpoint` and `panelRightBreakpoint` where you can specify minimal width to make panels always visible
* Fixed Chrome issue that now treats most of touch events as "passive"
* Autocomplete
* New `autoFocus` parameter to open standalone autcomplete and auto focus search field
* New `openWithAnimation` parameter (enabled by default) brings option to open standalone autocomplete without animation (if required)
* Forms
* `formFromData` now fires "change" events on form fields
* iOS theme
* Fixed issue on Chrome with invisible range slider thumb
* Material theme:
* Better support for bottom Toolbar/Tabbar
* Navbars/Toolbars now have shadows by default. Use additional "no-shadow" class on navbar/toolbar to disable shadow on it
* Status Bar height increased to 24px in Material theme
* Theme color is also applicable to Status Bar overlay for Material theme
* Swiper updated to latest 3.4.2 version
* Lot of minor fixes
## Framework7 v1.5.3 - Updated on February 10, 2017
* Autocomplete
* New Standalone autocomplete parameter `requestSourceOnOpen` (`false`/disabled by default). Will request source on autocomplete open if enabled
* New Dropdown autocomplete paremter `highlightMatches` parameter (`true`/enabled by default)
* Fixed issues with special characters in Dropdown autocomplete
* Fixed status bar overlay positioning when app root element is used
* Smart Select
* Added `data-display-as` attribute on option to display selected option value differently
* Dom7
* `.append` method now supports multiple arguments (elements) to append
* `.each` methods will now stop iteration if you do `return false`
* Improved `.parseUrlQuery` behavior
* All XHR errors will now also trigger `complete` events/callback
* Navbars/Toolbars
* `.hideNavbar`, `.showNavbar`, `.hideToolbar`, `.showToolbar` methods now accepts boolean parameter to define whether it should be animated or not. By default it will be hidden/shown with animation (as before)
* Panels
* `.openPanel(position, animated)` and `.closePanel(animated)` now accepts additional `animated` parameter that defines whether the panel should be opened/closed with animation or not. Enabled (with animation) by default
* Now swipe panels trigger additional `panel:swipe` event during touch swipe
* Click on panel overlay will now trigger additional `panel:overlay-click` event on currently opened panel before it will be closed
* Modals
* All modal methods now also support new `animated` parameter that defines whether the modal should be opened/closed with animation or not. Enabled (with animation) by default:
* `.actions(target, params, animated)`
* `.popover(modal, target, removeOnClose, animated)`
* `.popup(modal, removeOnClose, animated)`
* `.pickerModal(modal, removeOnClose, animated)`
* `.loginScreen(modal, removeOnClose, animated)`
* `.closeModal(modal, animated)`
* New app parameter `modalsMoveToRoot` (`true`/enabled by default). When enabled it will move opened modal to the app root element (or body) if it is not there on the moment of opening and move back after modal closed. It allows to use modals inside of loaded pages
* Searchbar
* Now it passes `previousQuery` to the `search:clear` event data (or `onClear` callback)
* Tabs
* `.showTab(tab, animated)` now accepts additional `animated` parameter that defines whether the tab should become visible with animation or not. Actual for animated and swipeable tabs. Enabled (with animation) by default
* View
* Now views support names with new `name` property on View initialization with `.addView` method and can be accessed later by same named property of `app.views`
* Virtual List
* Now it has default render template (if not passed anything to `template` or `renderItem` parameters)
* New `emptyTemplate` parameter to specify template when no empty data is passed
* Lot of minor fixes
## Framework7 v1.5.2 - Updated on December 17, 2016
* **New Timeline Component**
* **Renamed Events**
* All events are renamed and lowercased to match related components, now all events looks like `page:init`, `page:reinit`, `page:beforeremove`, `popup:open`, `modal:closed`, `accordion:open`, `panel:close`, etc. This can be a breaking change so the old events are still supported/triggered
* Virtual List
* Fixed issues with Virtual List not triggered Infinite Scroll
* Dom7
* `.val()` method for multiple select now returns array of selected values
* `serializeObject` now keeps empty object properties as empty values
* Panels
* Fixed issue when `swipePanelActiveArea` was ignored when using `swipePanel: 'both'`
* Fast Clicks
* Fixed issue with custom click event on input:file
* Swiper updated to latest 3.4.1 version
* Fixed Zoom for RTL
* Improved slideToClickedSlide behavior when loop is enabled
* Template7 updated to latest 1.1.4 version
* Fixed issue with quotes being added to helpers hash content
* Lot of minor fixes
## Framework7 v1.5.0 - Updated on November 8, 2016
* App Root
* New `root` app parameter to specify app root element, by default is `'body'`. Useful when using F7 with libraries like Vue or React that doesn't allow to bind app to the body.
* **Icons**
* Brand new [Framework7 Icons](https://github.com/nolimits4web/Framework7-Icons) font with lot of precious and designed from scratch iOS icons
* Default "Form" icons removed in favor of using F7 or Material icons fonts instead
* **Vue.js** support (beta) with official [Framework7 Vue](https://github.com/nolimits4web/Framework7-Vue) plugin
* **Animate7** (beta) - new built-in animation helper library to help with custom animation. Also avaialble as Dom7 method
* `Animate7(elements, properties, parameters)`
* `Dom7(elements).animate(properties, parameters)`
```js
Animate7('#animate-me',
{
height: 200,
width: 100
},
{
duration: 400,
easing: 'swing',
complete: function () {
console.log('Animation completed')
}
}
)
```
* iOS Theme
* iOS 10 style Notifications
* iOS 10 style Messagebar
* Notifications in iOS theme now doesn't support more than one notification at a time
* Chips
* Now also supported by iOS theme to keep consistency with Material theme
* Floating Action Button
* Now also supported by iOS theme to keep consistency with Material theme
* Messages
* New `scrollMessages` parameter to enable/disable messages autoscrolling when adding new message. Enabled (`true`) by default
* New `scrollMessagesOnlyOnEdge` parameter to autoscroll messages only when user is on top/bottom of the messages view. Disabled (`false`) by default
* Added "message-date" element for message bubble for iOS theme to keep consistency with Material theme messages
* Hairlines
* New `no-hairlines` and `no-hairlines-between` classes for list-blocks and content-blocks to remove block hairlines and hairlines between list items
* Forms
* `formToJSON` renamed to `formToData` method. `formToJSON` is still supported for compatibility
* `formFromJSON` renamed to `formFromData` method. `formFromJSON` is still supported for compatibility
* Color Themes
* `.colors.css` stylesheets are refactored to make higher priority for `color-` rules over `theme-` rules
* Color preloaders now also supported by iOS theme with all default colors by adding `preloader-[color]` or `color-[color]` class, e.g. `preloader-green` or `preloader-orange` etc.
* Sortable
* `sort` event now receives additional `event.detail` object with `startIndex` and `newIndex` properties of sorted element
* Photo Browser
* Added `pinch to zoom` support for Android
* Panels
* Now it supports both left and right panels to be swipeable by setting `swipePanel: 'both'`
* Tabs
* Tab that becomes inactive will also trigger `hide` event
* Swipeout
* New `swipeoutRemoveWithTimeout` app parameter. By default is `false`. When specified, then framework will remove element after `0` timeout instead of immediately. Useful to enable if you use another library like Vue or React to manage (remove) swipeout items
* Router
* Page data and Navbar data are not available anymore in `BeforeRestroy` events
* `.router.load` method supports new `pageElement` parameter to specify page HTMLElement to load if it is already added to the `.pages` container manually or by different means/library
* Added context cache for pages rendered with Template7 to keep context when navigating deep in history and then going back
* New `routerRemoveWithTimeout` app parameter. By default is `false`. When specified, then framework will remove element after `0` timeout instead of immediately. Useful to enable if you use another library like Vue or React to manage (remove) pages
* Now you can keep dynamic navbar inside of page when loading pages dynamically (not inline pages) and router will place it automatically to the correct place. It helps to keep consistency with Material theme page layout
* Dom7
* New `.siblings(selector)` method to select all previous and next elements
* New `.empty()` method to clear element inner HTML
* New `.removeDiacritics(text)` helper method to remove/replace diacritics in passed text
* Fast Clicks
* New `fastClicksExclude` app parameter to specify elements not handled by fast clicks
* Fixed issue with not-working `<select>` element on Android
* Fixed issue with text selection on Android
* Touch
* Now framework uses passive event listeners for touch events in many components to improve scrolling performance on mobile devices
* Template7 update to latest 1.1.3 version:
* Added number, boolean, and single-quote-strings argument types support for template helpers
* Ability to use single/double quotes in helpers and mix them
* Swiper update to latest 3.4.0 version:
* New **zoom** functionality that enables double tap and pinch to zoom slide's inner image:
* Required slide layout for zoom:
```
<div class="swiper-slide">
<div class="swiper-zoom-container">
<img src="path/to/image">
</div>
</div>
```
* New zoom parameters:
* `zoom` - enable zoom functionality
* `zoomMax` - maximum image zoom multiplier, by default is `3`
* `zoomMin` - minimum image zoom multiplier, by default is `1`
* `zoomToggle` - enable/disable zoom-in by slide's double tap
* `zoomMax` can be also overridden for specific slide by using `data-swiper-zoom` attribute
* New `swiper.enableTouchControl()` and `swiper.disableTouchControl()` methods to enable disable touch control (it toggles `onlyExternal` parameter)
* New `swiper.realIndex` property in addition to `swiper.activeIndex` that returns index of active slide considering loop
* New methods `s.unsetGrabCursor()` and `s.setGrabCursor()` to enable/disable grab cursor
* Draggable Scrollbar now works when `simulateTouch:false
`
* New `normalizeSlideIndex` parameter to improve work of controller (see #1766)
* `lazyLoadingInPrevNextAmount` now works with `slidesPerView: 'auto'`
* New `passiveListeners` parameter to use passive event listeners to improve scrolling performance on mobile devices. Enabled by default
* New `freeModeMomentumVelocityRatio` parameter to control moment velocity
* Now it is possible to specify autoplay delay for every (or specific) slides by using `data-swiper-autoplay` attribute on them
* Lazy loading now also respects `sizes` responsive images attribute
* New `touchReleaseOnEdges` parameter to release touch events on slider edge position (beginning, end) and allow for further page scrolling
* Multirow (slidesPerColumn) support for vertical direction, which is in this case becomes multicolumn
* `paginationBulletRender` now accepts `swiper` instance as a first argument, `paginationBulletRender(index, className)` -> `paginationBulletRender(swiper, index, className)`
* Lot of minor fixes and improvements
## Framework7 v1.4.2 - Updated on February 27, 2016
* Material Theme
* Added colors support for speed dial buttons
* Push State
* New `pushStateOnLoad` app parameter (by default is `true`) allows to disable first push state navigation on app load
* `preventPushStateOnLoad` app parameter that is used to block initial and falsy `popstate` event in Safari, has been removed now in favor of another fix
* Autocomplete
* Fixed issue with dropdown autocomplete not being opened on Androids
* Fixed issue with standalone autocomplete searchbar overlay on iOS
* More standalone autocomplete exposed properties: `page`, `pageData`, `searchbar` with search bar instance
* Router
* Now it will save URL query for inline page which was ignored before, for URLs like `#about?foo=bar`
* A bit more imporved positioning for Dynamic navbar elements animation
* Dom7
* New `.closest(selector)` method to find elements matching specified selector starting from the element itself
* `.text()` method is now "chainable"
* Grid
* More sizes added. Now all available sizes for columns are: 5, 10, 15, 20, 25, 30, 33, 35, 40, 45, 50, 55, 60, 65, 66, 70, 75, 80, 85, 90, 95, 100
* Modals
* Now it is supported to pass `HTMLElement` into `.popup`, `.popover` and `.pickerModal` methods
* Swiper updated to latest 3.3.1 version:
* New 3D Flip effect. Can be enabled with `effect: 'flip' parameter
* New types of pagination with new parameters:
* `paginationType` - type of pagination. Can be `'bullets'` (default) or `'fraction'` or `'progress'` or `'custom'`
* `paginationFractionRender(swiper, currentClass, totalClass)` - custom function to render "fraction" type pagination
* `paginationProgressRender(swiper, progressbarClass)` - custom function to render "progress" type pagination
* `paginationCustomRender(swiper, current, total)` - custom function to render "custom" type pagination
* New `lazyLoadingInPrevNextAmount` parameter allows to lazy load images in specified amount of next/prev slides
* New `autoplayStopOnLast` parameter (`true` by default) tells to autoplay should it stop on last slide or start from first slide
* New `onAutoplay(swiper)` callback
* New `uniqueNavElements` parameter. If enabled (by default) and navigation elements' parameters passed as the string (like `.pagination`) then Swiper will look for such elements through child elements first. Applies for pagination, prev/next buttons and scrollbar
* New `onPaginationRendered` callback. Will be fired after pagination elements generated and added to DOM
* New `.reLoop()` method, which combines `.destroyLoop()` + `.createLoop()` methods with additional positioning fixes. Useful to call after you have changed `slidesPerView` parameter, it will dynamically recreate duplicated slides required for loop
* New `.nextButton` and `.prevButton` properties with Dom7 element with next/prev button HTML element
* Forms
* New `app.destroyResizableTextarea()` method to destroy resizable textarea
* Numerous minor fixes and improvements
## Framework7 v1.4.0 - Updated on December 7, 2015
* New mobile-friendly "Autocomplete" component. Comes with 2 modifications as Dropdown or Standalone autocomplete
* New "Progress Bar" component. Includes 3 different types of progress bar for each theme: "Determinate", "Indeterminate" and "Indeterminate Multi-color"
* New "Swipeable Tabs" component which allows you to change Tabs by swiping left/right
* Material Theme
* Fixed issue with Notifications closing without animation in webkit browsers
* New "Scrollable Tabbar" Tabbar modification. Allows to swipe/scroll through tab links if they all don't fit into view
* New "Bottom Toolbar" Toolbar modification. It allows to use Toolbar on the bottom of screen instead of only on the top
* New "Speed dial" Floating Action Button transition when it shows additional action buttons by tapping on it
* New "Popover Morph" Floating Action Button transition when it morphs to Popover by tapping on it
* Reworked "Preloader" in favor of plain HTML elements animation instead of SVG which has visual issues on "slow" devices.
* `materialPreloaderSvg` parameter is deprectated and replaced with the new one `materialPreloaderHtml`
* Dom7
* Added option to trigger multiple events using space separated syntax `.trigger('event1 event2 event3')`
* Calendar
* Fixed Calendar dates ordering on iOS in Date Range Picker mode
* Swiper updated to latest 3.2.7 version:
* New "Auto Height" mode when container/wrapper adopts to the height of currently active slide. Can be enabled with `autoHeight: true` parameter
* Numerous minor improvements
* Custom Build
* Added "progressbar" and "autcomplete" modules
* Numerous minor fixes and improvements
## Framework7 v1.3.5 - Updated on November 8, 2015
* Material Theme:
* Fixed issue with not disappearing "ripples" in hidden elements
* Fixed Searchbar color when using color themes
* New "Chips" component
* Calendar
* New Date Range Picker mode, can be simple enabled by passing `rangePicker: true` parameter
* "Date range"-type parameter now accepts mixed types (single date + date range)
* Push State
* Fixed issue for dynamic pages loaded with passing DOM directly
* Fixed issue with Push State on start from inline-pages
* Imporved behavior with empty `pushStateSeparator` and `pushStateRoot`
* Virtual List
* New `showFilteredItemsOnly` parameter to show filtered items only when using filter
* Modals
* Reworked overlay's z-indexes
* Router
* Added support for passing DOM content in `preprocess` callback
* Fixed issue with `page.query` getting lost for deep Inline pages navigation
* Dom7
* Added support for XHR `DELETE`, `OPTIONS` and `PATCH` methods
* `$.serializeObject` now serialize deep objects and arrays
* Swiper updated to latest 3.2.0 version:
* Added responsive breakpoints support using new `breakpoints` parameter. Now you can specify different `slidesPerView` and other similar parameters for different sizes
* New callbacks: `onSlideNextStart`, `onSlideNextEnd`, `onSlidePrevStart`, `onSlidePrevEnd`
* Minor fixes
* Numerous minor fixes and improvements
## Framework7 v1.3.1 - Updated on October 12, 2015
* Fixed issue with not showing "Cancel" button in Searchbar
* Fixed issue with Modal without buttons (liek Preloader modal)
## Framework7 v1.3.0 - Updated on October 10, 2015
* iOS Theme
* New appearence to match new iOS 9 design, mostly for Overlays: Modal, Popover and Action Sheet
* Support for new San Francisco font:
* For desktops - using San Francisco font that can be downloaded from https://developer.apple.com/fonts/
* For iOS - using system San Francisco font
* Fixed issue with switch toggle in RTL layout
* Material Theme
* `dynamicNavbar` will be disabled automatically for this theme
* Added `no-ripple` class to disable ripple effect on specific elements
* Fixed issue with floating labels with predefined values
* Fixed behavior of hidden toolbars/tabbars
* Fixed issue in RTL layout for tab bar
* Smart Select
* App's `smartSelectInPopup` parameter is removed
* Added new app's `smartSelectOpenIn` parameter. Can be `page`, `popup` or `picker`. By default is `page`
* Added option to open it in picker:
* Using `data-open-in="picker"` attribute or `smartSelectOpenIn` app's parameter
* Picker close button text can be specified:
* Using `data-picker-close-text` attribute
* New app's `smartSelectPickerCloseText` parameter. By default is `Done`
* Smart Select picker height can be controlled using `data-picker-height` attribute
* Added support for none-standard `maxlength` attribute on `<select>` element to limit amount of selected items for "multiple" select
* Dom7
* New `prependTo(parent)` method to prepend element to parent
* New `appendTo(parent)` method to append element to parent
* Ajax: added support for data types different from "text", like "arraybuffer" and others
* `$.serializeObject` method now supports deep objects with objects and arrays
* Swipeout
* Now overswipe-button will have additonal "swipeout-overswipe-active" class during overswipe
* New `data-close-on-cancel="true"` attribute for "swipeout-delete" buttons with `data-confirm` to close swipeout element in case of user canceled confirm dialog
* Photo Browser
* Double tap to zoom now zooms to the tapped position, not only to the center of picture
* Messagebar
* Now when you type new message it will scroll messages pages to bottom only in case if you are in the bottom of this page
* Picker
* Added `closeByOutsideClick` parameter to close picker automatically when you click outside of related input or picker. By default is `true`
* Now it will set related input's value on initialization with specified value
* Calendar
* Added `closeByOutsideClick` parameter to close picker automatically when you click outside of related input or picker. By default is `true`
* Now it will set related input's value on initialization with specified value
* New `disabled` parameter to specify additional "disabled" days
* New `events` parameter to specify dates with "events" (will be marked with additional dots)
* New `rangesClasses` parameter to easily add custom classes to specified dates
* Pull To Refresh
* New events `pullstart`, `pullmove`, `pullend` and `refreshdone`
* Forms
* Better cross-browser support for `input[type="range"]` element
* Virtual List
* Fixed issue with size and scroll calculating when initialized in hidden tab
* Fixed issue with size and scroll calculating when used not in page
* Searchbar
* Fixed issue with close button when initialized in hidden tab
* Lazy Loading
* Fixed issue with lazy loading in hidden tab
* Template7 update to latest 1.1.0 version:
* Fixed access to data (`@index`, `@key`) and root context (`@root`) in partials
* Fixed `null` variables not to be outputed
* Swiper updated to latest 3.1.7 version:
* Fixed issue with wrong slides fill when number of slides less than `slidesPerView * slidesPerColumn` with `slidesPerColumnFill: 'row'`
* Added support for images `srcset` with lazy loading using `data-srcset` attribute
* Fixed new Chrome errors with `WebkitCSSMatrix`
* Fixed issue with `slideToClickedSlide` with `loop` and `centeredSlides`
* New `freeModeMinimumVelocity` parameter to set minimum required touch velocity to trigger free mode momentum
* Ability to make the Scrollbar draggable using new paramaters:
* `scrollbarDraggable` - (boolean) by default is `false`. Allows to enable draggable scrollbar
* `scrollbarSnapOnRelease` - (boolean) by default is `false`. Control slider snap on scrollbar release
* Router
* Now precompiled/cached tamplates will be ignored in case of `ignoreCache: true` parameter
* Fixed issue with `domCache` when going back with `force:true` to home page
* Lot of minor fixes and improvements
## Framework7 v1.2.0 - Updated on July 18, 2015
* New full featured Material theme designed according to Google guidelines
* New Material-specific App' parameters:
* `material` - should be set to `true` to enable Material-specific JS logic
* `materialPageLoadDelay` - option to add page loading delay (in ms)
* `materialPreloaderSvg` - HTML code for Material preloader
* `materialRipple` - option to enable Material-specific touch ripple effect (enabled by default)
* `materialRippleElements` - list of elements to apply touch ripple effect
* New CSS files structure
* All color-specific styles (color themes) are moved to separate `*.colors.css` file
* `*.themes.css` file has beend removed and its content merged into `*.colors.css` file
* Each theme has its own CSS files:
* `framework7.ios.css` - main styles for iOS theme
* `framework7.ios.colors.css` - color-specific styles for iOS theme
* `framework7.ios.rtl.css` - RTL layout styles for iOS theme
* `framework7.material.css` - main styles for Material theme
* `framework7.material.colors.css` - color-specific styles for Material theme
* `framework7.material.rtl.css` - RTL layout styles for Material theme
* Kitchen Sink has been splitted into two platform specific Kitchen Sinks
* Material theme breaking changes:
* Material theme doesn't support Dynamic Navbar
* Material theme doesn't support Through-type layout for Navbars/Toolbars
* A bit different layout for Checkboxes/Radios (check Kitchen Sink examples)
* Notifications are now displayed as so called Snackbars & Toasts
* Toolbar/Tabbar is now on the top of the page, under the Navbar
* Photo Browser
* Photo Browser main template changed to Template7 template
* Smart Select
* Fixed issue with using of optgroup with only one option with Virtual List enabled
* Calendar
* Fixed issue with wrong date formatting
* Notifications
* New global `notificationCloseButtonText` and local `closeButtonText` parameters for button on notifcation (toast) (Used in material theme only)
* Swipeout
* Fixed issue with none closing swipeout using a fast swipe
* Forms
* New Resizable textareas
* All form icons are converted to SVG
* Pull To Refresh
* Fixed "jumping" effect during multi-touch pull on iOS
* RTL
* Fixed issue with back pages navigation
* Swiper updated to latest 3.1.0 version:
* Accessibility (a11y)
* Fixed issue with wrong buttons labels
* Added support for pagination bullets
* New accessibility parameter for pagination label `paginationBulletMessage: 'Go to slide {{index}}'`
* Controler
* New parameter `controlBy` which can be 'slide' (by default) or 'container'. Defines a way how to control another slider: slide by slide or depending on all slides/container (like before)
* Now controllers in `controlBy: 'slide'` (default) mode will respect grid of each other
* Pagination
* New `paginationElement` parameter defines which HTML tag will be use to represent single pagination bullet. By default it is `span`
* New `roundLengths` parameter (by default is `false`) to round values of slides width and height to prevent blurry texts on usual resolution screens
* New `slidesOffsetBefore: 0` and `slidesOffsetAfter: 0` (in px) parameters to add additional slide offset within a container
* Correct calculation for slides size when use CSS padding on `.swiper-container`
* Fixed issue with not working onResize handler when swipes are locked
* Fixed issue with "jumping" effect when you disable `onlyExternal` during touchmove
* Fixed issue when slider goes to previos slide from last slide after window resize
* Custom builder will build both iOS and Android specific CSS files
* Lot of minor fixes and improvements
## Framework7 v1.0.7 - Updated on June 20, 2015
* Dom7
* New `.removeData(key)` method to remove element data
* New `.filter(func)` method to filter elements collections
* Now initial XHR request parameters are available in `xhr.requestParameters` property
* Push State
* Fixed issues in FireFox/IE when going back produces infinite transition to first page in history
* Searchbar
* Fixed issue with not fully active Search Bar when using `customSearch:true`
* `searchbarHideDividers` and `searchbarHideGroups` parameters are moved from global app parameters to Searchbar instance parameters
* Now support callback parameters on initialization: `onSearch`, `onEnable`, `onDisable`, `onClear`
* Searchbar instance has new `.query` property with current seaarch query
* Accordion
* Fixed issue when using Accordion with media lists
* Messages
* Improved "auto-scroll" behavior when adding new message
* Photo Browser
* Fixed issues with `onSlideChangeStart`, `onSlideChangeEnd` callbacks which actually were `onTransitionStart`, `onTransitionEnd`
* Added support for Swiper's `onTransitionStart`, `onTransitionEnd` callbacks
* Color Themes
* Now `border-@color` class will set correct border color on elements that use pseudo-elements (:after, :before) as a borders
* Overlays
* Now pages and navbars in modals/popups should be initialized as normal pages on overlay open/creation
* Template7 updated to latest 1.0.6 version:
* Partials support:
* `registerPartial(name, template)` method to register partial
* `unregisterPartial(name, template)` method to unregister partial
* `>` helper to include partials like `{{> list}}`
* New `escape` helper for escaping strings
* Swiper updated to latest 3.0.8 version:
* Fixed issue with wrong active index and callbacks in Fade effect
* New mousewheel parameters:
* `mousewheelReleaseOnEdges` - will release mousewheel event and allow page scrolling when swiper is on edge positions (in the beginning or in the end)
* `mousewheelInvert` - option to invert mousewheel slides
* Fixed issue with lazy loading in next slides when `slidesPerView` > 1
* Fixed issue with resistance bounds when swiping is locked
* Fixed issue with wrong slides order in multi-row mode (when `slidesPerColumn` > 1)
* Fixed issue with not working keyboard control in RTL mode
* Fixed issue with nested fade-effect swipers
* Lot of minor fixes
## Framework7 v1.0.6 - Updated on May 1, 2015
* Dom7
* Improved performance for `outerWidth` and `outerHeight` methods
* `.serializeObject` method will apply encode uri to serialized string
* Searchbar
* Fixed search when using groups
* New option `removeDiacritics` to remove/replace diacritics characters (á, í, ó, etc.) during search
* Push State
* New `pushStatePreventOnLoad` option to prevent pop state on app load
* Navbars / Toolbars
* New option `showBarsOnPageScrollTop` to show bars when scoll page to top
* View
* More swipe back callbacks/events on View: `swipebackmove` -> `swipeBackMove`, `swipeBackBeforeChange`, `swipeBackBeforeReset`, `swipeBackAfterChange`, `swipeBackAfterReset`
* Calendar, Picker
* Fixed issues when `input` is not specified
* Grid
* New auto layout columns (equal width) with `col-auto` class
* Swiper updated to latest 3.0.7 version:
* New `width` and `height` parameters to force Swiper size, useful when it is hidden on intialization
* Better support for "Scroll Container". So now Swiper can be used as a scroll container with one single "scrollable"/"swipeable" slide
* Added lazy loading for background images with `data-background` attribute on required elements
* New "Sticky Free Mode" (with `freeModeSticky` parameter) which will snap to slides positions in free mode
* Fixed issues with lazy loading
* Fixed slide removing when loop mode is enabled
* Fixed issues with Autoplay and Fade effect
* Custom Build
* Fixed issues with not working custom build
* Lot of minor fixes
## Framework7 v1.0.5 - Updated on March 28, 2015
* Dom7
* `$.camelCase` utilite renamed to `$.toCamelCase`
* `.removeAttr()` method now returns current Dom7 collection
* All response statuses that are between 200 and 300 will fire "success" callback/event
* Fast Clicks
* Fixed issue whith removing "Active state" when using `fastClicksDistanceThreshold`
* Fixed issues with multiple clicks on Android < 4.4
* New Tap Hold Event
* It is can be used (if enabled) as usual event on any element like `$('.something').on('taphold', handler)`
* It is controled by new App parameters
* `tapHold: false` - set to true to enable tap hold events
* `tapHoldDelay: 750` - how long (in ms) the user must hold their tap before the taphold event is fired on the target element
* `tapHoldPreventClicks: true` - if enabled (by default), then click event will not be fired after tap hold
* Navbar
* Dynamic Navbar now has some events similar to page events: `navbarReinit`, `navbarBeforeInit`, `navbarInit`, `navbarBeforeRemove`. Each event `detail` contains:
* `navbar` - object with related navbar elements `navbarContainer` and `navbarInnerContainer`
* `page` - object with related page data
* Action Sheet
* Each button support new additional `disabled` parameter to make button disabled
* Added "Action Sheet To Popover" template that can be changed using App's `modalActionsToPopoverTemplate` parameter
* Messages
* New methods to handle messages:
* `messages.removeMessage(message)` - remove message
* `messages.removeMessages(messages)` - remove multiple messages per once
* `messages.addMessages(newMessages, method, animate)` - add multiple messages per once
* The following methods have new additional `animate` argument that allows to add new messages immediately without any transition and page scrolling
* `messages.addMessage(message, method, animate)`
* `messages.appendMessage(message, animate)`
* `messages.prependMessage(message, animate)`
* New `messages` initialization parameter that allows to pass initial messages using JS on initialization
* Template7 update to latest 1.0.5 version:
* Support for root context that may be used in templates as `{{@root.someVar}}`
* Improved support for paths:
* Support to access arrays directly by index `{{someArray.2}}`
* Better support for context "level up" `{{../../../someVar}}`
* New JS helpers with direct JS execution:
* `{{js "this.price * 2"}} - inline helper to modify/check context on the fly or do some JS calculations
* `{{#js_compare "this.price > 1000"}}Too expensive{{/js_compare}} - block helper for easier compares of variables
* Swiper updated to latest 3.0.6 version:
* Fixed sometimes wrong slides position when using "Fade" effect
* `.destroy(deleteInstance, cleanupStyles)` method now has second `cleanupStyles` argument, when passed - all custom styles will be removed from slides, wrapper and container. Useful if you need to destroy Swiper and to init again with new options or in different direction
## Framework7 v1.0.4 - Updated on March 21, 2015
* Router
* `preprocess` callback parameter now also supported by View on its initialisation which could overwrite `preprocess` app' parameter (if specified)
* New `preroute(view, options)` callback parameter which is supported by App and View on their initialisation. This callback allows to prevent default router load/back action and to load another page or do another required actions
* Swipeout
* Fixed issue with not opening swipeout after incomplete transition
* Fixed issue with triggering overswipe action on mobiles
* Messages
* New method `messages.clean()` - to clean/remove all the messages
* Calendar
* Fixed issues with years switch when using min/maxDate which didn't allow to return to the current year
* New parameter `onlyInPopover` (disabled by default). Enable it and Calendar will be always opened in Popover
* Picker
* New parameter `onlyInPopover` (disabled by default). Enable it and Picker will be always opened in Popover
* Fixed issues with not-clickable "items" after using `col.replaceValues` method
* Fast Clicks
* Fixed issue that didn't allow to call click programmatically (using element.click()) after first synthetic click
* Dom7
* Added jQuery-like `$.each(object, callback)` method to iterate through Objects and Arrays
* Added optional `callback` argument for `$.scrollTo/Top/Left` methods to be executed after scrolling completed. With the following arguments options:
* `$.scrollTo(left, top, duration, easing, callback)`
* `$.scrollTo(left, top, duration, callback)`
* `$.scrollTop(top, duration, easing, callback)`
* `$.scrollTop(top, duration, callback)`
* `$.scrollLeft(top, duration, easing, callback)`
* `$.scrollLeft(top, duration, callback)`
* Swipe Back
* Will automatically close any active Picker Modals
* Searchbar
* New `customSearch` parameter. When enabled searchbar will not search through any of list blocks specified by `searchList` and you will be able to use custom search functionality, for example, for calling external APIs with search results and for displaying them manually
* Added ability to search in different places by passing a list of elements in `searchIn` parameters, for example: `searchIn: '.item-title, .item-text'`
* View
* New App method to get current (currently visible and active) View instance:
* `myApp.getCurrentView(index)` - return currently active View. If there are few currently active views (as in split view layout), then you need to specify `index` number of View, otherwise this method will return an array with current Views
* Push State
* More strictly locked to main view only to prevent states from other views
* Swiper updated to latest 3.0.5 version
* New Keyboard accessibility module to provide focusable navigation buttons and basic ARIA for screen readers with new parameters:
* `a11y: false` - enable accessibility
* `prevSlideMessage: 'Previous slide'` - message for screen readers for previous button
* `nextSlideMessage: 'Next slide'` - message for screen readers for next button
* `firstSlideMessage: 'This is the first slide'` - message for screen readers for previous button when swiper is on first slide
* `lastSlideMessage: 'This is the last slide'` - message for screen readers for next button when swiper is on last slide
* New Emitter module. It allows to work with callbacks like with events, even adding them after initialization with new methods:
* `.on(event, handler)` - add event/callback
* `.off(event, handler)` - remove this event/callback
* `.once(event, handler)` - add event/callback that will be executed only once
* Plugins API is back. It allows to write custom Swiper plugins
* New parameter `setWrapperSize` (be default it is `false`) to provide better compatibility with browser without flexbox support. Enabled this option and plugin will set width/height on swiper wrapper equal to total size of all slides
* New `virtualTranslate` parameter. When it is enabled swiper will be operated as usual except it will not move. Useful when you may need to create custom slide transition
* Added support for multiple Pagination containers
* Fixed `onLazyImage...` callbacks
* Fixed issue with not accessible links inside of Slides on Android < 4.4
* Fixed pagination bullets behavior in loop mode with specified `slidesPerGroup`
## Framework7 v1.0.3 - Updated on March 7, 2015
* Dataset
* This could be a breaking change but all `data-` attributes, where used, now must be in hyphens-case instead of camelCase like in many places before. For example:
* `data-animatePages` on links now should be `data-animate-pages`
* `data-slidesPerView` on swiper now should be `data-slides-per-view`
* etc.
* Cards
* Fixed margins when page contains cards only
* Fast Clicks/Clicks
* Fixed scroll prevention on overlays when `fastClicks:false`
* SmartSelect
* `data-back-onselect` renamed to `data-back-on-select`
* Ability to add option color and additional class name using `data-option-color` and `data-option-class` attributes on `<option>`
* New app method to add options dynamically using `app.smartSelectAddOption(selectElement, optionHTML, atIndex)`
* Lower case search when using Smart Select with Virtual List and Searchbar
* Virutal List
* Fixed issues with Virtual List re initialization when using inline pages
* Form elements
* Reset styles for input[type="search"]
* Searchbar
* Searchbar reworked to standalone component/Class, that can be initialized with new `app.searchbar(searchbarElement, params)` method. Such method returns instances with useful methods and properties to get more control over Searchbar:
* `searchbar.enable()` - to enable/activate searchbar
* `searchbar.disable()` - to disable/deactivate searchbar
* `searchbar.clear()` - to clear search query and update results
* `searchbar.search(query)` - to search query
* `searchbar.destroy()` - to destroy searchbar instance
* `searchbar.input` - access to search text field HTML element
* `searchbar.active` - property to know is it active or not
* `searchbar.input` - access to search text field HTML element
* `searchbar.searchList` - access to search list HTML element
* `searchbar.container` - access to searchbar self HTML element
* Also supports auto-initiliazation with additional "searchbar-init" class and passing parameters as `data-` attributes
* Removed `app.destroySearchbar` method
* Messagebar
* Messagebar reworked to standalone component/Class, that can be initialized with new `app.messagebar(messagebarElement, params)` method. Such method returns instances with useful methods and properties to get more control over Messagebar:
* `messagebar.textarea` - access to messagebar textarea HTML element
* `messagebar.value(newValue)` - method to get/set messagebar value/text
* `messagebar.clear()` - to clear messagebar textarea and update/reset its size
* `messagebar.container` - access to messagebar self HTML element
* `messagebar.destroy()` - to destroy messagebar instance
* Also supports auto-initiliazation with additional "messagebar-init" class and passing parameters as `data-` attributes
* Removed `app.destroyMessagebar` method
* Messages
* Messages reworked to standalone component/Class, that can be initialized with new `app.messages(messagesElement, params)` method. Such method returns instances with useful methods and properties to get more control over Messages:
* `messages.container` - access to messages self HTML element
* `messages.appendMessage(messageProps)` - add new message to the end
* `messages.prependMessage(messageProps)` - add new message to the beginnging
* `messages.addMessage(messageProps, method)` - add new message to the end or beginning depending on `newMessagesFirst` parameter
* `messages.scrollMessages()` - scroll messages to top/bottom depending on `newMessagesFirst` parameter
* `messages.layout()` - apply messages auto layout
* `messages.destroy()` - to destroy messages instance
* Also supports auto-initiliazation with additional "messages-init" class and passing parameters as `data-` attributes
* Removed app method:
* `app.addMessage`
* `app.updateMessagesLayout`
* `app.scrollMessagesContainer`
* Router
* Fixed issue with disabled pages animation and none dynamic navbar
* Lazy Loading
* Fixed issue with not working fade effect when `imagesLazyLoadSequential: false`
* Popup
* Fixed issue with flickering navbar during popup open/close animation
* Photo Browser
* Lazy Loading logic moved to Swiper's lazy loading
* Sticky Titles
* Fixed flickering hairline
* Swiper updated to latest 3.0.4
* New Parallax component for transitions with parallax effects on internal elements
* New Images Lazy Load component
* With new parameters `lazyLoading`, `lazyLoadingInPrevNext`, `lazyLoadingOnTransitionStart` (all disabled by default)
* With new callbacks `onLazyImageLoad` and `onLazyImageReady`
* `updateOnImages` ready split into 2 parameters:
* `preloadImages` (by default is true) - to preload all images on swiper init
* `updateOnImages` (by default is true) - update swiper when all images loaded
* Fixed issues with touchmove on focused form elements
* New `onObserverUpdate` callback function to be called after updates by ovserver
* New `paginationBulletRender` parameter that accepts function which allow custom pagination elements layout
* `watchVisibility` parameter renamed to `watchSlidesVisibility`
* Fixed issue with not firing onSlideChangeEnd callback after calling .slideTo with runCallbacks=false
* Fixed values of isBeginning/isEnd when there is only one slide
* New `crossFade` option for fade effect
* Improved .update and .onResize methods
* Minor fixes
* Dom7
* New .dataset() method which returns data Object based on element `data-` attributes
## Framework7 v1.0.2 - Updated on February 22, 2015
* Page Transitions
* Highly improved page transitions and swipe back performance
* FastClicks
* Fixed issue with sometimes not working checkboxes on Androids
* Icons
* All inline SVG icons are now encoded for better support in IE
* Photo Browser
* Fixed "swipe-to-close" behavior
* Pages
* `pageData` now has additional `navbarInnerContainer` property with HTML container of related Navbar
* Device API
* New property `app.device.androidChrome` that indicates Chrome browser running on Android
* Swiper update to latest 3.0.2
* New callbacks
* onInit (swiper)
* onTouchMoveOpposite (swiper, e)
* Fixed free mode momentum in RTL layout
* `.update` method improved to fully cover what `onResize` do for full and correct update
* Exposed `swiper.touches` object with the following properties: `startX`, `startY`, `currentX`, `currentY`, `diff`
* New methods to remove slides
* `.removeSlide(index)` or `.removeSlide([indexes])` - to remove selected slides
* `.removeAllSlides()` - to remove all slides
* Themes
* Improved support for active tabbar icons and global theme colors
* Sub Navbar
* Improved animation/transition during swipe back action
* Panels
* Fixed issue with broken `swipePanelOnlyClose` parameter
* Smart Select
* Fixed small issue with "collapsed" (wtihout space between) values in item-after
* Demo Apps
* Demo apps removed from main repo to their own repositories on GitHub
## Framework7 v1.0.1 - Updated on February 13, 2015
* FastClicks
* Fixed issue with sometimes broken inertia scrolling on Androids
* Swiper
* Updated to latest version with bettwe suport in RTL layout with old-flexbox
## Framework7 v1.0.0 - Updated on February 6, 2015
* Picker
* New component that allows you to c