framework7rails 3.0.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/framework7rails/version.rb +2 -2
- data/update_from_vendor.rb +1 -1
- data/vendor/assets/javascripts/framework7.js +5806 -2303
- data/vendor/assets/javascripts/framework7.js.map +1 -1
- data/vendor/assets/stylesheets/framework7.css +2164 -464
- data/vendor/assets/stylesheets/framework7.themes.css +189 -25
- metadata +2 -205
- data/Framework7-0.9.6/.gitignore +0 -5
- data/Framework7-0.9.6/.jshintrc +0 -33
- data/Framework7-0.9.6/.travis.yml +0 -5
- data/Framework7-0.9.6/CHANGELOG.md +0 -342
- data/Framework7-0.9.6/Gruntfile.js +0 -560
- data/Framework7-0.9.6/LICENSE +0 -20
- data/Framework7-0.9.6/README.md +0 -113
- data/Framework7-0.9.6/apps/todo7/css/todo7.css +0 -208
- data/Framework7-0.9.6/apps/todo7/img/Icon-152.png +0 -0
- data/Framework7-0.9.6/apps/todo7/img/bg.jpg +0 -0
- data/Framework7-0.9.6/apps/todo7/img/icon-114.png +0 -0
- data/Framework7-0.9.6/apps/todo7/img/icon-120.png +0 -0
- data/Framework7-0.9.6/apps/todo7/img/icon-144.png +0 -0
- data/Framework7-0.9.6/apps/todo7/img/icon-57.png +0 -0
- data/Framework7-0.9.6/apps/todo7/img/icon-72.png +0 -0
- data/Framework7-0.9.6/apps/todo7/img/icon-76.png +0 -0
- data/Framework7-0.9.6/apps/todo7/index.html +0 -112
- data/Framework7-0.9.6/apps/todo7/jade/index.jade +0 -99
- data/Framework7-0.9.6/apps/todo7/js/todo7.js +0 -102
- data/Framework7-0.9.6/apps/todo7/less/todo7.less +0 -221
- data/Framework7-0.9.6/apps/todo7/manifest.php +0 -27
- data/Framework7-0.9.6/apps/weather7/css/weather7.css +0 -291
- data/Framework7-0.9.6/apps/weather7/img/bg.jpg +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-114.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-120.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-144.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-152.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-57.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-72.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/icon-76.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/logo.png +0 -0
- data/Framework7-0.9.6/apps/weather7/img/yahoo-logo.png +0 -0
- data/Framework7-0.9.6/apps/weather7/index.html +0 -127
- data/Framework7-0.9.6/apps/weather7/jade/index.jade +0 -113
- data/Framework7-0.9.6/apps/weather7/js/weather7.js +0 -213
- data/Framework7-0.9.6/apps/weather7/less/weather7.less +0 -294
- data/Framework7-0.9.6/apps/weather7/manifest.php +0 -29
- data/Framework7-0.9.6/bower.json +0 -30
- data/Framework7-0.9.6/dist/about.html +0 -28
- data/Framework7-0.9.6/dist/css/framework7.css +0 -4922
- data/Framework7-0.9.6/dist/css/framework7.min.css +0 -15
- data/Framework7-0.9.6/dist/css/framework7.rtl.css +0 -427
- data/Framework7-0.9.6/dist/css/framework7.rtl.min.css +0 -1
- data/Framework7-0.9.6/dist/css/framework7.themes.css +0 -279
- data/Framework7-0.9.6/dist/css/framework7.themes.min.css +0 -1
- data/Framework7-0.9.6/dist/css/my-app.css +0 -0
- data/Framework7-0.9.6/dist/form.html +0 -229
- data/Framework7-0.9.6/dist/img/i-f7.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-calendar.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-comment.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-email.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-gender.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-name.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-password.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-settings.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-tel.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-toggle.png +0 -0
- data/Framework7-0.9.6/dist/img/i-form-url.png +0 -0
- data/Framework7-0.9.6/dist/index.html +0 -102
- data/Framework7-0.9.6/dist/js/framework7.js +0 -7479
- data/Framework7-0.9.6/dist/js/framework7.min.js +0 -18
- data/Framework7-0.9.6/dist/js/my-app.js +0 -48
- data/Framework7-0.9.6/dist/services.html +0 -28
- data/Framework7-0.9.6/examples/split-view-panel/about.html +0 -20
- data/Framework7-0.9.6/examples/split-view-panel/css/my-app.css +0 -56
- data/Framework7-0.9.6/examples/split-view-panel/index.html +0 -135
- data/Framework7-0.9.6/examples/split-view-panel/jade/about.jade +0 -18
- data/Framework7-0.9.6/examples/split-view-panel/jade/index.jade +0 -107
- data/Framework7-0.9.6/examples/split-view-panel/jade/left-page-1.jade +0 -15
- data/Framework7-0.9.6/examples/split-view-panel/jade/left-page-2.jade +0 -15
- data/Framework7-0.9.6/examples/split-view-panel/jade/services.jade +0 -18
- data/Framework7-0.9.6/examples/split-view-panel/js/my-app.js +0 -15
- data/Framework7-0.9.6/examples/split-view-panel/left-page-1.html +0 -19
- data/Framework7-0.9.6/examples/split-view-panel/left-page-2.html +0 -19
- data/Framework7-0.9.6/examples/split-view-panel/less/my-app.less +0 -62
- data/Framework7-0.9.6/examples/split-view-panel/services.html +0 -20
- data/Framework7-0.9.6/examples/split-view/about.html +0 -19
- data/Framework7-0.9.6/examples/split-view/css/my-app.css +0 -23
- data/Framework7-0.9.6/examples/split-view/index.html +0 -135
- data/Framework7-0.9.6/examples/split-view/jade/about.jade +0 -15
- data/Framework7-0.9.6/examples/split-view/jade/index.jade +0 -107
- data/Framework7-0.9.6/examples/split-view/jade/left-page-1.jade +0 -15
- data/Framework7-0.9.6/examples/split-view/jade/left-page-2.jade +0 -15
- data/Framework7-0.9.6/examples/split-view/jade/services.jade +0 -15
- data/Framework7-0.9.6/examples/split-view/js/my-app.js +0 -15
- data/Framework7-0.9.6/examples/split-view/left-page-1.html +0 -19
- data/Framework7-0.9.6/examples/split-view/left-page-2.html +0 -19
- data/Framework7-0.9.6/examples/split-view/less/my-app.less +0 -23
- data/Framework7-0.9.6/examples/split-view/services.html +0 -19
- data/Framework7-0.9.6/examples/tab-bar/about.html +0 -19
- data/Framework7-0.9.6/examples/tab-bar/css/my-app.css +0 -34
- data/Framework7-0.9.6/examples/tab-bar/index.html +0 -238
- data/Framework7-0.9.6/examples/tab-bar/jade/about.jade +0 -15
- data/Framework7-0.9.6/examples/tab-bar/jade/index.jade +0 -189
- data/Framework7-0.9.6/examples/tab-bar/jade/services.jade +0 -15
- data/Framework7-0.9.6/examples/tab-bar/js/my-app.js +0 -15
- data/Framework7-0.9.6/examples/tab-bar/less/my-app.less +0 -35
- data/Framework7-0.9.6/examples/tab-bar/services.html +0 -19
- data/Framework7-0.9.6/kitchen-sink/about.html +0 -22
- data/Framework7-0.9.6/kitchen-sink/accordion.html +0 -171
- data/Framework7-0.9.6/kitchen-sink/color-themes.html +0 -42
- data/Framework7-0.9.6/kitchen-sink/contacts.html +0 -190
- data/Framework7-0.9.6/kitchen-sink/core-features.html +0 -70
- data/Framework7-0.9.6/kitchen-sink/css/kitchen-sink.css +0 -233
- data/Framework7-0.9.6/kitchen-sink/deep-2.html +0 -22
- data/Framework7-0.9.6/kitchen-sink/deep-navbar-2.html +0 -19
- data/Framework7-0.9.6/kitchen-sink/deep-navbar-3.html +0 -19
- data/Framework7-0.9.6/kitchen-sink/deep-navbar.html +0 -18
- data/Framework7-0.9.6/kitchen-sink/forms-buttons.html +0 -64
- data/Framework7-0.9.6/kitchen-sink/forms-checkboxes.html +0 -200
- data/Framework7-0.9.6/kitchen-sink/forms-elements.html +0 -359
- data/Framework7-0.9.6/kitchen-sink/forms-selects.html +0 -72
- data/Framework7-0.9.6/kitchen-sink/forms-storage.html +0 -181
- data/Framework7-0.9.6/kitchen-sink/forms.html +0 -56
- data/Framework7-0.9.6/kitchen-sink/grid.html +0 -140
- data/Framework7-0.9.6/kitchen-sink/hide-navbar-toolbar.html +0 -42
- data/Framework7-0.9.6/kitchen-sink/img/beach.jpg +0 -0
- data/Framework7-0.9.6/kitchen-sink/img/lock.jpg +0 -0
- data/Framework7-0.9.6/kitchen-sink/img/monkey.jpg +0 -0
- data/Framework7-0.9.6/kitchen-sink/img/mountains.jpg +0 -0
- data/Framework7-0.9.6/kitchen-sink/index.html +0 -466
- data/Framework7-0.9.6/kitchen-sink/infinite-scroll-load.php +0 -19
- data/Framework7-0.9.6/kitchen-sink/infinite-scroll.html +0 -119
- data/Framework7-0.9.6/kitchen-sink/jade/about.jade +0 -19
- data/Framework7-0.9.6/kitchen-sink/jade/accordion.jade +0 -133
- data/Framework7-0.9.6/kitchen-sink/jade/color-themes.jade +0 -37
- data/Framework7-0.9.6/kitchen-sink/jade/contacts.jade +0 -115
- data/Framework7-0.9.6/kitchen-sink/jade/core-features.jade +0 -74
- data/Framework7-0.9.6/kitchen-sink/jade/deep-navbar-2.jade +0 -15
- data/Framework7-0.9.6/kitchen-sink/jade/deep-navbar-3.jade +0 -15
- data/Framework7-0.9.6/kitchen-sink/jade/deep-navbar.jade +0 -15
- data/Framework7-0.9.6/kitchen-sink/jade/forms-buttons.jade +0 -71
- data/Framework7-0.9.6/kitchen-sink/jade/forms-checkboxes.jade +0 -152
- data/Framework7-0.9.6/kitchen-sink/jade/forms-elements.jade +0 -239
- data/Framework7-0.9.6/kitchen-sink/jade/forms-selects.jade +0 -60
- data/Framework7-0.9.6/kitchen-sink/jade/forms-storage.jade +0 -134
- data/Framework7-0.9.6/kitchen-sink/jade/forms.jade +0 -52
- data/Framework7-0.9.6/kitchen-sink/jade/grid.jade +0 -110
- data/Framework7-0.9.6/kitchen-sink/jade/hide-navbar-toolbar.jade +0 -38
- data/Framework7-0.9.6/kitchen-sink/jade/index.jade +0 -427
- data/Framework7-0.9.6/kitchen-sink/jade/infinite-scroll.jade +0 -20
- data/Framework7-0.9.6/kitchen-sink/jade/list-view.jade +0 -266
- data/Framework7-0.9.6/kitchen-sink/jade/login-screen-embedded.jade +0 -22
- data/Framework7-0.9.6/kitchen-sink/jade/login-screen.jade +0 -20
- data/Framework7-0.9.6/kitchen-sink/jade/media-lists.jade +0 -170
- data/Framework7-0.9.6/kitchen-sink/jade/messages.jade +0 -71
- data/Framework7-0.9.6/kitchen-sink/jade/modals.jade +0 -36
- data/Framework7-0.9.6/kitchen-sink/jade/navbars-toolbars.jade +0 -43
- data/Framework7-0.9.6/kitchen-sink/jade/no-navbar-toolbar.jade +0 -7
- data/Framework7-0.9.6/kitchen-sink/jade/no-navbar.jade +0 -7
- data/Framework7-0.9.6/kitchen-sink/jade/no-toolbar.jade +0 -17
- data/Framework7-0.9.6/kitchen-sink/jade/notifications.jade +0 -23
- data/Framework7-0.9.6/kitchen-sink/jade/panels.jade +0 -21
- data/Framework7-0.9.6/kitchen-sink/jade/photo-browser.jade +0 -36
- data/Framework7-0.9.6/kitchen-sink/jade/popover.jade +0 -21
- data/Framework7-0.9.6/kitchen-sink/jade/preloader.jade +0 -31
- data/Framework7-0.9.6/kitchen-sink/jade/pull-to-refresh.jade +0 -44
- data/Framework7-0.9.6/kitchen-sink/jade/searchbar.jade +0 -146
- data/Framework7-0.9.6/kitchen-sink/jade/slider-custom.jade +0 -23
- data/Framework7-0.9.6/kitchen-sink/jade/slider-horizontal.jade +0 -18
- data/Framework7-0.9.6/kitchen-sink/jade/slider-multiple.jade +0 -48
- data/Framework7-0.9.6/kitchen-sink/jade/slider-nested.jade +0 -26
- data/Framework7-0.9.6/kitchen-sink/jade/slider-space-between.jade +0 -18
- data/Framework7-0.9.6/kitchen-sink/jade/slider-vertical.jade +0 -18
- data/Framework7-0.9.6/kitchen-sink/jade/slider.jade +0 -57
- data/Framework7-0.9.6/kitchen-sink/jade/sortable-list.jade +0 -107
- data/Framework7-0.9.6/kitchen-sink/jade/swipe-delete.jade +0 -195
- data/Framework7-0.9.6/kitchen-sink/jade/tabbar-labels.jade +0 -54
- data/Framework7-0.9.6/kitchen-sink/jade/tabbar.jade +0 -50
- data/Framework7-0.9.6/kitchen-sink/jade/tabs.jade +0 -34
- data/Framework7-0.9.6/kitchen-sink/jade/transitions.jade +0 -27
- data/Framework7-0.9.6/kitchen-sink/js/kitchen-sink.js +0 -442
- data/Framework7-0.9.6/kitchen-sink/less/kitchen-sink.less +0 -245
- data/Framework7-0.9.6/kitchen-sink/list-view.html +0 -318
- data/Framework7-0.9.6/kitchen-sink/login-screen-embedded.html +0 -36
- data/Framework7-0.9.6/kitchen-sink/login-screen.html +0 -21
- data/Framework7-0.9.6/kitchen-sink/media-lists.html +0 -173
- data/Framework7-0.9.6/kitchen-sink/messages.html +0 -84
- data/Framework7-0.9.6/kitchen-sink/modals.html +0 -33
- data/Framework7-0.9.6/kitchen-sink/navbars-toolbars.html +0 -46
- data/Framework7-0.9.6/kitchen-sink/no-navbar-toolbar.html +0 -11
- data/Framework7-0.9.6/kitchen-sink/no-navbar.html +0 -11
- data/Framework7-0.9.6/kitchen-sink/no-toolbar.html +0 -18
- data/Framework7-0.9.6/kitchen-sink/notifications.html +0 -21
- data/Framework7-0.9.6/kitchen-sink/panel-right2.html +0 -16
- data/Framework7-0.9.6/kitchen-sink/panel-right3.html +0 -16
- data/Framework7-0.9.6/kitchen-sink/panels.html +0 -23
- data/Framework7-0.9.6/kitchen-sink/photo-browser.html +0 -36
- data/Framework7-0.9.6/kitchen-sink/popover.html +0 -21
- data/Framework7-0.9.6/kitchen-sink/preloader.html +0 -28
- data/Framework7-0.9.6/kitchen-sink/pull-to-refresh.html +0 -52
- data/Framework7-0.9.6/kitchen-sink/searchbar.html +0 -233
- data/Framework7-0.9.6/kitchen-sink/slider-custom.html +0 -28
- data/Framework7-0.9.6/kitchen-sink/slider-horizontal.html +0 -29
- data/Framework7-0.9.6/kitchen-sink/slider-multiple.html +0 -89
- data/Framework7-0.9.6/kitchen-sink/slider-nested.html +0 -32
- data/Framework7-0.9.6/kitchen-sink/slider-space-between.html +0 -29
- data/Framework7-0.9.6/kitchen-sink/slider-vertical.html +0 -29
- data/Framework7-0.9.6/kitchen-sink/slider.html +0 -54
- data/Framework7-0.9.6/kitchen-sink/sortable-list.html +0 -137
- data/Framework7-0.9.6/kitchen-sink/swipe-delete.html +0 -216
- data/Framework7-0.9.6/kitchen-sink/tabbar-labels.html +0 -51
- data/Framework7-0.9.6/kitchen-sink/tabbar.html +0 -0
data/Framework7-0.9.6/.gitignore
DELETED
data/Framework7-0.9.6/.jshintrc
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"node" : true,
|
3
|
-
"browser" : true,
|
4
|
-
"esnext" : true,
|
5
|
-
"bitwise" : false,
|
6
|
-
"curly" : false,
|
7
|
-
"eqeqeq" : true,
|
8
|
-
"eqnull" : true,
|
9
|
-
"immed" : true,
|
10
|
-
"latedef" : true,
|
11
|
-
"newcap" : true,
|
12
|
-
"noarg" : true,
|
13
|
-
"undef" : true,
|
14
|
-
"strict" : true,
|
15
|
-
"trailing" : true,
|
16
|
-
"smarttabs" : true,
|
17
|
-
"quotmark" : "single",
|
18
|
-
"indent" : 4,
|
19
|
-
"white" : true,
|
20
|
-
"globals":{
|
21
|
-
"document": true,
|
22
|
-
"WebKitCSSMatrix": true,
|
23
|
-
"Document": true,
|
24
|
-
"window": true,
|
25
|
-
"$":true,
|
26
|
-
"t7": true,
|
27
|
-
"Framework7":true,
|
28
|
-
"Template7":true,
|
29
|
-
"Event":true,
|
30
|
-
"DocumentTouch":true,
|
31
|
-
"app":true
|
32
|
-
}
|
33
|
-
}
|
@@ -1,342 +0,0 @@
|
|
1
|
-
# Change Log
|
2
|
-
|
3
|
-
## Framework7 v0.9.6 - Updated on September 12, 2014
|
4
|
-
* Template7
|
5
|
-
* Now Framework7 comes with its own template engine - Template7. Which has totally the same syntax as Handlebars, but a way faster in templates compilation and rendering, especially in mobile Safari (up to 4 times faster!)
|
6
|
-
* It is now globally available in window as `Template7` function
|
7
|
-
* Modals
|
8
|
-
* App's `modalTemplate` and `modalActionsTemplate` now accept Template7 html template string
|
9
|
-
* Swipeouts
|
10
|
-
* Totally reworked swipeouts layout (not compatible with previous F7 versions) and behavior to make them like in iOS 8. Now they could be on both sides (on left or/and right) and support overswipe to immediately trigger action without click on action button
|
11
|
-
* Status bar overlay now detected correctly on iPhone 6 and 6 plus
|
12
|
-
* Slider
|
13
|
-
* New .update() method to update slides, positions, sizes, pagination if you add slides dynamically
|
14
|
-
* New onTransitionStart/End callbacks parameters
|
15
|
-
* Totally prevent click events and custom handlers when `preventClicks` enabled
|
16
|
-
* Accordion
|
17
|
-
* Now triggers "open", "opened", "close", "closed" events
|
18
|
-
* Action Sheet
|
19
|
-
* Now could be automatically converted to Popover on iPad if you call it with new two-arguments syntax .actionSheet(target, buttons)
|
20
|
-
* Pull To Refresh
|
21
|
-
* Pull to refresh content receives additional "pull-down" class when pulled down
|
22
|
-
* Fixed issues on iOS 8
|
23
|
-
* Fast Clicks
|
24
|
-
* New "Active state" feature to make :active state behavior like in apps not like in web. With two additional App parameters: `activeState` and `activeStateElements`. It is enabled by default
|
25
|
-
* Now fast clicks could be disabled on some specific element with "no-fastclick" class
|
26
|
-
* New `fastClicksDistanceThreshold` app parameter to set distance threshold to prevent short taps
|
27
|
-
* Fixed issue with input:file
|
28
|
-
* Dom7
|
29
|
-
* Support to add event listeners with "capture", so the full syntax now is `.on(eventName, target, listener, capture)` or `.on(eventName, listener, capture)`
|
30
|
-
* New `.once` method to add event listener that should be executed only once
|
31
|
-
* JSONP requests now support "error" callback and script load timeout
|
32
|
-
* Notifications
|
33
|
-
* Prevent .onClick callback function when user clicks on "close" icon
|
34
|
-
* Highly reworked App router:
|
35
|
-
* New `uniqueHistory` App/View initialization parameter, that will remove duplicate pages from View history and from DOM
|
36
|
-
* Now, there will be only one page in View's DOM if `swipeBackPage` and `preloadPreviousPage` App/View parameters are set to `false`
|
37
|
-
* New View's `.loadPage(options)` method that accepts object with options: `animatePages`, `ignoreCache`, `url`, `content`, `forceUrl`, `reload`, `reloadPrevious`
|
38
|
-
* New View's `.goBack(options)` method that accepts object with options: `animatePages`, `ignoreCache`, `url`, `content`, `forceUrl`, `reload`, `reloadPrevious`
|
39
|
-
* Links now also support these options as data- attributes, like `<a href="#" data-animatePages="true" data-ignoreCache="true" ... >`
|
40
|
-
* New View's .loadPage's shortcuts methods:
|
41
|
-
* `.loadPage(url)` - load page by specified url
|
42
|
-
* `.loadContent(content)` - load page with specified content
|
43
|
-
* `.reloadPage(url)` - reload currenly active view's page from specified URL
|
44
|
-
* `.reloadPreviousPage(url)` - the same but for previous (left) view's page
|
45
|
-
* `.reloadContent(content)` - reload currenly active view's page with passed HTML content
|
46
|
-
* `.reloadPreviousContent(content)` - the same but for previous (left) view's page
|
47
|
-
* `.refreshPage()` - refresh currenly active view's page from specified URL
|
48
|
-
* `.refreshPreviousPage()` - the same but for previous (left) view's page
|
49
|
-
* Tab bar
|
50
|
-
* New additional classes `tabbar-labels-fixed` and `tabbar-labels-through` (for Views, View, Pages and Page) for pages with tab bar to set required bottom padding on `page-content`
|
51
|
-
* ToDo7 / Weather7 apps updated with support of new swipeouts and now they use Template7 for templating
|
52
|
-
|
53
|
-
## Framework7 v0.9.5 - Updated on August 15, 2014
|
54
|
-
* Colors
|
55
|
-
* Now Framework7 supports color themes: 10 default iOS colors (red, green, blue, lightblue, gray, white, black, orange, yellow, pink) that can be applied to any interactive elements (icons, links, buttons, form elements)
|
56
|
-
* There are also introduced layout themes (with additional framework7.themes.css file) which contains 2 additional layout themes: dark and white. These themes change look of whole app.
|
57
|
-
* Core
|
58
|
-
* Links support additional "with-animation" class name to force animation if it is disabled in App/View parameters
|
59
|
-
* Reworked `allowPageChange` flag. Now it is linked to View. This allows to load pages in multiple Views at the same time
|
60
|
-
* View
|
61
|
-
* New `onSwipeBackMove` callback function parameter that will be executed during swipe back
|
62
|
-
* Also triggers `swipebackmove` event during swipe back
|
63
|
-
* Dom7
|
64
|
-
* Dom7 is totally restructured, now it is a global Window function and can be accessible from everywhere
|
65
|
-
* New `.scrollLeft(left, duration)`, `.scrollTo(left, top, duration)` methods
|
66
|
-
* Fixed issue with multiple JSONP requests at the same time
|
67
|
-
* `.removeClass` now will remove "class" attribute if class name is not passed as argument
|
68
|
-
* Custom build
|
69
|
-
* Included missed Pull To Refresh' css styles
|
70
|
-
* Styles
|
71
|
-
* Half-pixel iOS 8 borders are available only for retina iOS screens
|
72
|
-
* Fixed list view items borders on nested lists and accordions
|
73
|
-
* Device API
|
74
|
-
* `html` also has "retina" class on HiDPI screens
|
75
|
-
* Panels
|
76
|
-
* Resolved conflict with swipe panel and swipeouts
|
77
|
-
* New `swipePanelCloseOpposite` app parameter that also allows to close opposite panel with swipe
|
78
|
-
* Fixed multi touch issue
|
79
|
-
* Content block
|
80
|
-
* Now can be inset with additional `inset` and `tablet-inset` classes
|
81
|
-
* Messages/Message Bar
|
82
|
-
* Fixed crashes on iOS 8
|
83
|
-
* Message Bar has additional `data-max-height` attribute to set its max grow height
|
84
|
-
* Photo Browser
|
85
|
-
* New `onOpen`, `onClose`, `onSwipeToClose` callback functions parameters
|
86
|
-
* New `ofText` parameter allows customisation of "of" word in photos counter "3 of 5"
|
87
|
-
* Fixed next/prev icons opacity when there is only one photo browser slide
|
88
|
-
* Resolved z-indexes conflict with Popup
|
89
|
-
* Fixed panning ability on Android
|
90
|
-
* Smart Select
|
91
|
-
* Smart select's `<option>` now support additional `data-option-icon` and `data-option-image` attributes to set appropriate media element on opened Smart select page
|
92
|
-
* `data-backtext`, `data-pagetitle`, `data-backonselect` attributes are changed to `data-back-text`, `data-page-title`, `data-back-onselect`
|
93
|
-
* Icons
|
94
|
-
* Checkbox and radio icons images now moved to CSS with SVG
|
95
|
-
* Fast Clicks
|
96
|
-
* Automatically trigger blur on form inputs on Android when it is required
|
97
|
-
* Pull To Refresh
|
98
|
-
* New `app.pullToRefreshTrigger` method to trigger pull to refresh manually
|
99
|
-
* Improved scrolling performance on long lists
|
100
|
-
* Fixed issue with continuous browser repaint because of preloader animation
|
101
|
-
* Fixed Android's "lost focus" bug
|
102
|
-
* Grid
|
103
|
-
* Now grid is responsive, and number of columns could be changed on Phone/Tablet with additional class like `.col-50.tablet-33`
|
104
|
-
* Tabs
|
105
|
-
* Tabs links now support more complex layout, now each tab's link could be placed in different Dom parts and on different level
|
106
|
-
* Pages
|
107
|
-
* `pageData` now has additional `swipeBack` property within pageBefore/AfterAnimation callback to detect that page was animated after swipe back
|
108
|
-
* `pageData` now has additional `navbarInnerContainer` property with related Navbar inner (only for Dynamic Navbar)
|
109
|
-
* Action Sheet
|
110
|
-
* Action Sheet button doesn't support "red" property anymore. Now it supports "color" property where you may specify any of 10 default colors
|
111
|
-
* Lot of minor fixes
|
112
|
-
|
113
|
-
### 0.9.5 Breaking changes!
|
114
|
-
* Icons now haven't color name in class, there are no more "icon-back-blue", "icon-bars-blue", etc. Now they are just "icon-back", "icon-bars", etc. Their color could be changed with introduced color themes.
|
115
|
-
* Badges don't support additional badge-red/green/etc. classes anymore. Their color could be changed with introduced color themes
|
116
|
-
* There is no more `app.allowPageChange` flag. Now this flag is linked to each View
|
117
|
-
* Because of Dom7 now globally available, the `Framework7.$` dom export is now deprecated and will be removed in next release
|
118
|
-
* Smart select `data-backtext`, `data-pagetitle`, `data-backonselect` attributes are changed to `data-back-text`, `data-page-title`, `data-back-onselect`
|
119
|
-
|
120
|
-
|
121
|
-
## Framework7 v0.9.4 - Updated on July 26, 2014
|
122
|
-
|
123
|
-
* New Framework7 grunt custom library builder where you can include only required components
|
124
|
-
* Half-pixel (0.5px) borders in iOS 8 for list views, navbars, toolbars, modals, etc.
|
125
|
-
* Core
|
126
|
-
* New "statusbarOverlay" parameter to overwrite automatic statusbar overlay detection
|
127
|
-
* Searchbar
|
128
|
-
* Now it may consider and hide item-dividers and grouped list if nothing found there with two new App's options: searchbarHideDividers and searchbarHideGroups. By default, they are enabled (true)
|
129
|
-
* Smart Select
|
130
|
-
* Now it consider and doesn't output "disabled" options and will not be opened if it has "disabled" class or attribute
|
131
|
-
* Dom7
|
132
|
-
* New .removeAttr(attrName) method to remove attribute
|
133
|
-
* Now it is possible to detach live event listeners with the same "live" syntax `$('something').off('click', '.target', listener)`
|
134
|
-
* Icons
|
135
|
-
* New "icon-camera" (in message bar) and "icon-plus" icons
|
136
|
-
* Views
|
137
|
-
* New "url" parameter to specify View's default (startup) URL
|
138
|
-
* Tabs
|
139
|
-
* Now it is possible to swith multiple tabs with single tab-link by using "data-tab" attribute instead of "#" href attribute
|
140
|
-
* Modals
|
141
|
-
* New "tablet-fullscreen" class on Popup to make fullscreen popup in iPad
|
142
|
-
|
143
|
-
## Framework7 v0.9.3 - Updated on July 20, 2014
|
144
|
-
|
145
|
-
* New Accordion component
|
146
|
-
* New Login Screen component
|
147
|
-
* Messages
|
148
|
-
* Avatars now hide/show with transition
|
149
|
-
* Fixes white space wrap along long-words messages
|
150
|
-
* Views
|
151
|
-
* New "no-swipeback" class for .page to prevent Swipe Back on this page
|
152
|
-
* Grid
|
153
|
-
* Grid reworked to flex-box layout
|
154
|
-
* Fast Clicks
|
155
|
-
* Improved behavior on form fields
|
156
|
-
* Slider
|
157
|
-
* New "onOppositeTouchMove" callback
|
158
|
-
* Photo Browser
|
159
|
-
* New "swipeToClose" parameter that allows to close photo browser on swipe up/down
|
160
|
-
|
161
|
-
## Framework7 v0.9.2 - Updated on July 12, 2014
|
162
|
-
|
163
|
-
* New Message Bar component to be used with messages
|
164
|
-
* Totally reworked Messages, now they support avatar and user name
|
165
|
-
* Core:
|
166
|
-
* New "externalLinks" (array) parameter to set custom external links
|
167
|
-
* New "cacheIgnoreGetParameters" parameter to ignore caching for same urls with different GET parameters
|
168
|
-
* New "pushStateRoot" parameter that allow to use PushState with empty pushStateSeparator
|
169
|
-
* Smart Select:
|
170
|
-
* Support for "optgroup" tag which will be converted do list dividers on smart select page
|
171
|
-
* Support for "multiple" attribute that will convert radios to checkboxes on smart select page
|
172
|
-
* New "smartSelectBackOnSelect" option that will close Smart Select page when user choose item
|
173
|
-
* Modals:
|
174
|
-
* New Login Modal available by myApp.modalLogin() method
|
175
|
-
* New Password Modal available by myApp.modalPassword() method
|
176
|
-
* New "close-popover" class for links to close popover
|
177
|
-
* New .onClick(modal, index) callback function for custom Modal that receives index number of clicked button
|
178
|
-
* Searchbar:
|
179
|
-
* New option to specify "found" and "not-found" containers using data-searchbar-found and data-searchbar-not-found attributes
|
180
|
-
* Dom7:
|
181
|
-
* .next() and .prev() methods now support matching selector as an argument
|
182
|
-
* New .scrollTop(position, duration) method for animated scroll on element or to get element's scroll top position if no arguments passed
|
183
|
-
* Page Callbacks API:
|
184
|
-
* Support for "*" page name value to trigger callback for all pages
|
185
|
-
* Photo Browser
|
186
|
-
* Videos support with <video> or within embedded iframes
|
187
|
-
* Captions
|
188
|
-
* New syntax to define photos, not it could be array of objects with "url" and "caption" properties
|
189
|
-
* New Photo Browser parameters: captionsTheme, expositionHideCaptions, captionsTemplate, captionTemplate, objectTemplate
|
190
|
-
* View:
|
191
|
-
* New .activePage property that contains pageData of currently active page
|
192
|
-
* Styles:
|
193
|
-
* New disabled styles for elements with "disabled" class or attribute
|
194
|
-
* Fixes:
|
195
|
-
* Fixed issues with caching of Dynamic content
|
196
|
-
* Fixed swipeouts when they are in hidden tabs
|
197
|
-
* Corrected z-index relations between modals, overlays and status bar overlay
|
198
|
-
|
199
|
-
## Framework7 v0.9.0 - Updated on June 28, 2014
|
200
|
-
|
201
|
-
* Full RTL support for right to left languages (Arabic, Hebrew)!
|
202
|
-
* New Page callbacks API
|
203
|
-
* Smart Select: configurable page title and back link text via data-pagetitle and data-backtext attributes, new smartSelectBackText app parameter
|
204
|
-
* Dom7: new .prop(prop, value) method to set/access HTMLElement properties (checked, disabled, etc.)
|
205
|
-
* Search Bar: improved search for items that don't match to "search-in"; new "enableSearch", "disableSearch", "clearSearch" events
|
206
|
-
* Slider: support for fractional slidesPerView value
|
207
|
-
* Improved behavior of nested Views
|
208
|
-
* New ".tablet-inset" class for List Views to make them inset only on tablets (iPad)
|
209
|
-
* Navbar: fixed layout with only "right" element
|
210
|
-
* Changed preloader's CSS animation name to prevent conflicts with Font Awesome
|
211
|
-
|
212
|
-
## Framework7 v0.8.8 - Updated on June 21, 2014
|
213
|
-
|
214
|
-
* New App and View option to disable page animations - "animatePages:false"
|
215
|
-
* Improved behavior of Notifications
|
216
|
-
* Improved performance of Swipeouts
|
217
|
-
* Fixed Ajax loading when using ajaxLinks parameter
|
218
|
-
* Slider: prevent unnecessary clicks during touch move
|
219
|
-
* Preprocess now has new parameter - next(content) callback function to continue page loading from asynchronous thread
|
220
|
-
* Plugins API: new "swipePanelSetTransform" plugins hook; now it is possible to preprocess content by plugin
|
221
|
-
* Push State: new "pushStateNoAnimation" and "pushStateSeparator" app parameters
|
222
|
-
* Reset styles for "input[type=datetime-local]"
|
223
|
-
|
224
|
-
## Framework7 v0.8.7 - Updated on June 15, 2014
|
225
|
-
|
226
|
-
* New Notifications component
|
227
|
-
* New Search Bar component
|
228
|
-
* Slider: autoplay feature; fixed styles for nested sliders
|
229
|
-
* Dom7: fixed .off method to remove multiple events; new .nextAll and .prevAll methods
|
230
|
-
* Device API: new "gt-" (greater than) iOS version classes on HTML element
|
231
|
-
* Smart Select: now inherits no-navbar/toolbar props from page; now available with Search Bar
|
232
|
-
* Pluigns API: new 'pageBeforeRemove' plugin hook
|
233
|
-
* Separate overlays for Modals (modal, action sheet, popover) and Popups
|
234
|
-
* Reset styles for "input[type=number]"
|
235
|
-
|
236
|
-
## Framework7 v0.8.6 - Updated on May 31, 2014
|
237
|
-
|
238
|
-
* New Infinite Scroll component
|
239
|
-
* New Plugins API
|
240
|
-
* Slider: prevent links clicks during swipe
|
241
|
-
* Swipeout: new "swipeout" callback which returns opened progress
|
242
|
-
* Views: swipeBackPage App parameters could be overwrited for View
|
243
|
-
* Views: totally reworked to Classes
|
244
|
-
* Navbar: dynamic navbars now triggers 'navbarInit' event when added to DOM
|
245
|
-
* Tabs: new method app.showTab(tab) to switch tabs programmatically
|
246
|
-
|
247
|
-
## Framework7 v0.8.5 - Updated on May 24, 2014
|
248
|
-
|
249
|
-
* Many minor fixes
|
250
|
-
|
251
|
-
## Framework7 v0.8.4 - Updated on May 17, 2014
|
252
|
-
|
253
|
-
* New Slider component
|
254
|
-
* New Photo Browser component
|
255
|
-
* New arguments for predefined Modals (Alert, Confirm, Prompt) - myApp.alert(text, title, callbackOk, callbackCancel)
|
256
|
-
* "X-Requested-With: XMLHttpRequest" header for non crossdomain Ajax requests
|
257
|
-
* "cacheIgnoreList" app parameter renamed to "cacheIgnore"
|
258
|
-
* New transitional/animated Tabs
|
259
|
-
* New "pageBeforeRemove" Page callback
|
260
|
-
* Fixed swipe-panels when swiping during opened Modal/Overlay
|
261
|
-
* Removed Rails distributive
|
262
|
-
* New $.getTranslate(el, axis) DOM7 helper
|
263
|
-
* Lot of minor fixes and improvements
|
264
|
-
|
265
|
-
## Framework7 v0.8.2 - Updated on May 8, 2014
|
266
|
-
|
267
|
-
* Automatically submit forms using Ajax with additional "ajax-submit" and "ajax-submit-onchange" classes on form
|
268
|
-
* New Ajax DOM lib methods $.ajax(), $.get(), $.post(), $.getJSON()
|
269
|
-
* New DOM lib util $.serializeObject(obj)
|
270
|
-
* Ability to use Messages with new messages on top
|
271
|
-
* "cacheIgnoreList" app parameter to add array of URLs that should not be cached
|
272
|
-
* New app.support object with features detection
|
273
|
-
* Fix for submit button on iOS
|
274
|
-
|
275
|
-
## Framework7 v0.8.0 - Updated on May 2, 2014
|
276
|
-
|
277
|
-
* Sortable lists
|
278
|
-
* Disable caching for specific pages with "nocache" parameter in URL
|
279
|
-
* New "swipePanelActiveArea" parameter to allow swipe panels on specific distance from side of screen
|
280
|
-
* Totally reworked internal FastClicks library
|
281
|
-
* "device" object moved to Framework7.prototype for easy access before app intialization
|
282
|
-
* New DOM7 methods - .insertAfter()
|
283
|
-
* Fixed/improved DOM7 methods - .data(), .html(), .css()
|
284
|
-
* Better animation sync for dynamic navbar and pages
|
285
|
-
* New "viewClass", "viewMainClass", "viewsClass" parameters allow to have custom classes on Views
|
286
|
-
|
287
|
-
## Framework7 v0.7.8 - Updated on April 27, 2014
|
288
|
-
|
289
|
-
* pushState, FastClicks improvements
|
290
|
-
* Allow modal without title
|
291
|
-
* New .data() DOM7 method
|
292
|
-
* Fix styles for popup with statusbar overlay
|
293
|
-
|
294
|
-
## Framework7 v0.7.7 - Updated on April 24, 2014
|
295
|
-
|
296
|
-
* pushState navigation
|
297
|
-
* line-height fix for textarea
|
298
|
-
|
299
|
-
## Framework7 v0.7.6 - Updated on April 19, 2014
|
300
|
-
|
301
|
-
* Lot of new shortcut methods for DOM7 library: click(), blur(), focus(), focusin(), focusout(), keyup(), keydown(), keypress(), submit(), change(), mousedown(), mousemove(), mouseup(), mouseenter(), mouseleave(), mouseout(), mouseover(), touchstart(), touchend(), touchmove(), resize(), scroll()
|
302
|
-
* New .eq() DOM7 method
|
303
|
-
* fixed navbar/toolbar vertical alignment
|
304
|
-
|
305
|
-
## Framework7 v0.7.5 - Updated on April 18, 2014
|
306
|
-
|
307
|
-
* Swipe panels
|
308
|
-
* Forms Storage
|
309
|
-
* Preprocess Ajax content with "preprocess" callback parameter
|
310
|
-
* Cross-browser checkbox switch
|
311
|
-
* Fixes for navbar resizing
|
312
|
-
|
313
|
-
## Framework7 v0.7.4 - Updated on April 12, 2014
|
314
|
-
|
315
|
-
* Smart selects
|
316
|
-
* Smarter Ajax parser to parse files with different few pages in different views
|
317
|
-
* Removed deprecated onPageInit/onPageBeforeInit callbacks from app and view
|
318
|
-
* Refactored pages.js structure to bring mutual methods
|
319
|
-
* Animated navbar’s left back icon when ".left" is ".sliding"
|
320
|
-
* Fixed and improvements
|
321
|
-
|
322
|
-
## Framework7 v0.7.2 - Updated on April 11, 2014
|
323
|
-
|
324
|
-
* improved dist/ app
|
325
|
-
* small improvements and fixes in form elements
|
326
|
-
|
327
|
-
## Framework7 v0.7.1 - Updated on April 10, 2014
|
328
|
-
|
329
|
-
* "show" event on active tab
|
330
|
-
* fix for status bar detection
|
331
|
-
* check for proper params in addView
|
332
|
-
* size navbar on tab "show"
|
333
|
-
|
334
|
-
## Framework7 v0.7.0 - Updated on April 9, 2014
|
335
|
-
|
336
|
-
* new fast clicks library
|
337
|
-
* .tap() method removed and deprecated!
|
338
|
-
* domCache to keep prev pages in view
|
339
|
-
* dynamically generated popup and popover
|
340
|
-
* improved device object
|
341
|
-
* selectors engine available via Framework7.$
|
342
|
-
|
@@ -1,560 +0,0 @@
|
|
1
|
-
'use strict';
|
2
|
-
/*global require:true, module:false*/
|
3
|
-
module.exports = function (grunt) {
|
4
|
-
// show elapsed time at the end
|
5
|
-
require('time-grunt')(grunt);
|
6
|
-
// load all grunt tasks
|
7
|
-
require('load-grunt-tasks')(grunt);
|
8
|
-
|
9
|
-
var framework7 = {
|
10
|
-
filename: 'framework7'
|
11
|
-
};
|
12
|
-
|
13
|
-
|
14
|
-
var customModules = grunt.file.readJSON('modules.json');
|
15
|
-
var customBanner = '/*\n' +
|
16
|
-
' * <%= pkg.name %> <%= pkg.version %> - Custom Build\n' +
|
17
|
-
' *\n' +
|
18
|
-
' * Included modules: <%= modulesList %>\n' +
|
19
|
-
' *\n' +
|
20
|
-
' * Copyright <%= grunt.template.today("yyyy") %>, <%= pkg.author %>\n' +
|
21
|
-
' * The iDangero.us\n' +
|
22
|
-
' * http://www.idangero.us/\n' +
|
23
|
-
' *\n' +
|
24
|
-
' * Created on: <%= grunt.template.today("mmmm d, yyyy, HH:MM") %>\n' +
|
25
|
-
'*/\n';
|
26
|
-
|
27
|
-
// List of js files to concatenate
|
28
|
-
var jsFilesList = [
|
29
|
-
'src/js/wrap-start.js',
|
30
|
-
'src/js/f7-intro.js',
|
31
|
-
'src/js/global-events.js',
|
32
|
-
'src/js/views.js',
|
33
|
-
'src/js/navbars.js',
|
34
|
-
'src/js/searchbar.js',
|
35
|
-
'src/js/messagebar.js',
|
36
|
-
'src/js/xhr.js',
|
37
|
-
'src/js/pages.js',
|
38
|
-
'src/js/modals.js',
|
39
|
-
'src/js/panels.js',
|
40
|
-
'src/js/messages.js',
|
41
|
-
'src/js/swipeout.js',
|
42
|
-
'src/js/sortable.js',
|
43
|
-
'src/js/smart-select.js',
|
44
|
-
'src/js/pull-to-refresh.js',
|
45
|
-
'src/js/infinite-scroll.js',
|
46
|
-
'src/js/tabs.js',
|
47
|
-
'src/js/accordion.js',
|
48
|
-
'src/js/fast-clicks.js',
|
49
|
-
'src/js/clicks.js',
|
50
|
-
'src/js/resize.js',
|
51
|
-
'src/js/forms-handler.js',
|
52
|
-
'src/js/push-state.js',
|
53
|
-
'src/js/slider.js',
|
54
|
-
'src/js/photo-browser.js',
|
55
|
-
'src/js/notifications.js',
|
56
|
-
'src/js/plugins.js',
|
57
|
-
'src/js/init.js',
|
58
|
-
'src/js/f7-outro.js',
|
59
|
-
'src/js/dom7-intro.js',
|
60
|
-
'src/js/dom7-methods.js',
|
61
|
-
'src/js/dom7-ajax.js',
|
62
|
-
'src/js/dom7-utils.js',
|
63
|
-
'src/js/dom7-outro.js',
|
64
|
-
'src/js/proto-support.js',
|
65
|
-
'src/js/proto-device.js',
|
66
|
-
'src/js/proto-plugins.js',
|
67
|
-
'src/js/wrap-end.js',
|
68
|
-
'src/js/template7.js'
|
69
|
-
];
|
70
|
-
|
71
|
-
// Project configuration.
|
72
|
-
grunt.initConfig({
|
73
|
-
framework7: framework7,
|
74
|
-
// Metadata.
|
75
|
-
pkg: grunt.file.readJSON('bower.json'),
|
76
|
-
banner: '/*\n' +
|
77
|
-
' * <%= pkg.name %> <%= pkg.version %>\n' +
|
78
|
-
' * <%= pkg.description %>\n' +
|
79
|
-
' *\n' +
|
80
|
-
' * <%= pkg.homepage %>\n' +
|
81
|
-
' *\n' +
|
82
|
-
' * Copyright <%= grunt.template.today("yyyy") %>, <%= pkg.author %>\n' +
|
83
|
-
' * The iDangero.us\n' +
|
84
|
-
' * http://www.idangero.us/\n' +
|
85
|
-
' *\n' +
|
86
|
-
' * Licensed under <%= pkg.license.join(" & ") %>\n' +
|
87
|
-
' *\n' +
|
88
|
-
' * Released on: <%= grunt.template.today("mmmm d, yyyy") %>\n' +
|
89
|
-
'*/\n',
|
90
|
-
|
91
|
-
// Task configuration.
|
92
|
-
connect: {
|
93
|
-
server: {
|
94
|
-
options: {
|
95
|
-
port: 3000,
|
96
|
-
base: ''
|
97
|
-
}
|
98
|
-
}
|
99
|
-
},
|
100
|
-
open: {
|
101
|
-
kitchen: {
|
102
|
-
path: 'http://localhost:3000/kitchen-sink'
|
103
|
-
}
|
104
|
-
},
|
105
|
-
less: {
|
106
|
-
build: {
|
107
|
-
options: {
|
108
|
-
paths: ['less'],
|
109
|
-
cleancss: false
|
110
|
-
},
|
111
|
-
files: {
|
112
|
-
'build/css/<%= framework7.filename %>.css' : ['src/less/<%= framework7.filename %>.less'],
|
113
|
-
'build/css/<%= framework7.filename %>.rtl.css' : ['src/less/<%= framework7.filename %>.rtl.less'],
|
114
|
-
'build/css/<%= framework7.filename %>.themes.css' : ['src/less/<%= framework7.filename %>.themes.less']
|
115
|
-
}
|
116
|
-
},
|
117
|
-
dist: {
|
118
|
-
options: {
|
119
|
-
paths: ['less'],
|
120
|
-
cleancss: true
|
121
|
-
},
|
122
|
-
files: {
|
123
|
-
'dist/css/<%= framework7.filename %>.min.css' : ['src/less/<%= framework7.filename %>.less'],
|
124
|
-
'dist/css/<%= framework7.filename %>.rtl.min.css' : ['src/less/<%= framework7.filename %>.rtl.less'],
|
125
|
-
'dist/css/<%= framework7.filename %>.themes.min.css' : ['src/less/<%= framework7.filename %>.themes.less']
|
126
|
-
}
|
127
|
-
},
|
128
|
-
kitchen: {
|
129
|
-
options: {
|
130
|
-
paths: ['kitchen-sink/less/'],
|
131
|
-
cleancss: false
|
132
|
-
},
|
133
|
-
files: {
|
134
|
-
'kitchen-sink/css/kitchen-sink.css' : 'kitchen-sink/less/kitchen-sink.less'
|
135
|
-
}
|
136
|
-
},
|
137
|
-
examples: {
|
138
|
-
options: {
|
139
|
-
cleancss: false
|
140
|
-
},
|
141
|
-
files: [
|
142
|
-
{
|
143
|
-
expand: true,
|
144
|
-
cwd: 'examples/tab-bar/less/',
|
145
|
-
src: ['*.less'],
|
146
|
-
dest: 'examples/tab-bar/css/',
|
147
|
-
ext: '.css'
|
148
|
-
},
|
149
|
-
{
|
150
|
-
expand: true,
|
151
|
-
cwd: 'examples/split-view/less/',
|
152
|
-
src: ['*.less'],
|
153
|
-
dest: 'examples/split-view/css/',
|
154
|
-
ext: '.css'
|
155
|
-
},
|
156
|
-
{
|
157
|
-
expand: true,
|
158
|
-
cwd: 'examples/split-view-panel/less/',
|
159
|
-
src: ['*.less'],
|
160
|
-
dest: 'examples/split-view-panel/css/',
|
161
|
-
ext: '.css'
|
162
|
-
}
|
163
|
-
]
|
164
|
-
},
|
165
|
-
apps: {
|
166
|
-
options: {
|
167
|
-
cleancss: false
|
168
|
-
},
|
169
|
-
files: [
|
170
|
-
{
|
171
|
-
expand: true,
|
172
|
-
cwd: 'apps/weather7/less/',
|
173
|
-
src: ['*.less'],
|
174
|
-
dest: 'apps/weather7/css/',
|
175
|
-
ext: '.css'
|
176
|
-
},
|
177
|
-
{
|
178
|
-
expand: true,
|
179
|
-
cwd: 'apps/todo7/less/',
|
180
|
-
src: ['*.less'],
|
181
|
-
dest: 'apps/todo7/css/',
|
182
|
-
ext: '.css'
|
183
|
-
},
|
184
|
-
]
|
185
|
-
},
|
186
|
-
custom: {
|
187
|
-
options: {
|
188
|
-
paths: ['less'],
|
189
|
-
cleancss: false
|
190
|
-
},
|
191
|
-
files: {
|
192
|
-
'custom/css/<%= framework7.filename %>.custom.css' : ['custom/<%= framework7.filename %>.custom.less'],
|
193
|
-
}
|
194
|
-
},
|
195
|
-
custom_min: {
|
196
|
-
options: {
|
197
|
-
paths: ['less'],
|
198
|
-
cleancss: true
|
199
|
-
},
|
200
|
-
files: {
|
201
|
-
'custom/css/<%= framework7.filename %>.custom.min.css' : ['custom/<%= framework7.filename %>.custom.less'],
|
202
|
-
}
|
203
|
-
},
|
204
|
-
},
|
205
|
-
concat: {
|
206
|
-
options: {
|
207
|
-
banner: '<%= banner %>',
|
208
|
-
stripBanners: false,
|
209
|
-
process: function (src, filename) {
|
210
|
-
if (filename.indexOf('.js') >= 0) {
|
211
|
-
var addIndent = ' ';
|
212
|
-
filename = filename.replace('src/js/', '');
|
213
|
-
if (filename === 'wrap-start.js' || filename === 'wrap-end.js' || filename === 'template7.js') {
|
214
|
-
addIndent = '';
|
215
|
-
}
|
216
|
-
var add4spaces = ('f7-intro.js f7-outro.js proto-device.js proto-plugins.js proto-support.js dom7-intro.js dom7-outro.js').split(' ');
|
217
|
-
if (add4spaces.indexOf(filename) >= 0) {
|
218
|
-
addIndent = ' ';
|
219
|
-
}
|
220
|
-
var add8spaces = ('dom7-methods.js dom7-ajax.js dom7-utils.js').split(' ');
|
221
|
-
if (add8spaces.indexOf(filename) >= 0) {
|
222
|
-
addIndent = ' ';
|
223
|
-
}
|
224
|
-
src = grunt.util.normalizelf(src);
|
225
|
-
return src.split(grunt.util.linefeed).map(function (line) {
|
226
|
-
return addIndent + line;
|
227
|
-
}).join(grunt.util.linefeed);
|
228
|
-
}
|
229
|
-
else return src;
|
230
|
-
}
|
231
|
-
},
|
232
|
-
js: {
|
233
|
-
src: jsFilesList,
|
234
|
-
dest: 'build/js/<%= framework7.filename %>.js'
|
235
|
-
},
|
236
|
-
css_build: {
|
237
|
-
src: ['build/css/<%= framework7.filename %>.css'],
|
238
|
-
dest: 'build/css/<%= framework7.filename %>.css'
|
239
|
-
},
|
240
|
-
css_dist: {
|
241
|
-
src: ['dist/css/<%= framework7.filename %>.min.css'],
|
242
|
-
dest: 'dist/css/<%= framework7.filename %>.min.css'
|
243
|
-
},
|
244
|
-
js_custom: {
|
245
|
-
options: {
|
246
|
-
banner: customBanner
|
247
|
-
},
|
248
|
-
src: '<%= modulesJsList %>',
|
249
|
-
dest: 'custom/js/<%= framework7.filename %>.custom.js'
|
250
|
-
},
|
251
|
-
less_custom: {
|
252
|
-
options: {
|
253
|
-
banner: '',
|
254
|
-
},
|
255
|
-
src: '<%= modulesLessList %>',
|
256
|
-
dest: 'custom/<%= framework7.filename %>.custom.less'
|
257
|
-
},
|
258
|
-
css_custom: {
|
259
|
-
options: {
|
260
|
-
banner: customBanner
|
261
|
-
},
|
262
|
-
files: {
|
263
|
-
'custom/css/<%= framework7.filename %>.custom.css' : ['custom/css/<%= framework7.filename %>.custom.css'],
|
264
|
-
'custom/css/<%= framework7.filename %>.custom.min.css' : ['custom/css/<%= framework7.filename %>.custom.min.css'],
|
265
|
-
}
|
266
|
-
}
|
267
|
-
},
|
268
|
-
uglify: {
|
269
|
-
options: {
|
270
|
-
banner: '<%= banner %>'
|
271
|
-
},
|
272
|
-
dist: {
|
273
|
-
src: ['dist/js/<%= framework7.filename %>.js'],
|
274
|
-
dest: 'dist/js/<%= framework7.filename %>.min.js',
|
275
|
-
},
|
276
|
-
custom: {
|
277
|
-
options: {
|
278
|
-
banner: customBanner
|
279
|
-
},
|
280
|
-
src: ['custom/js/<%= framework7.filename %>.custom.js'],
|
281
|
-
dest: 'custom/js/<%= framework7.filename %>.custom.min.js',
|
282
|
-
}
|
283
|
-
},
|
284
|
-
jshint: {
|
285
|
-
options: {
|
286
|
-
jshintrc: '.jshintrc',
|
287
|
-
reporter: require('jshint-stylish')
|
288
|
-
},
|
289
|
-
build: {
|
290
|
-
src: ['Gruntfile.js', 'build/js/framework7.js']
|
291
|
-
},
|
292
|
-
custom: {
|
293
|
-
src: ['custom/js/<%= framework7.filename %>.custom.js']
|
294
|
-
}
|
295
|
-
},
|
296
|
-
|
297
|
-
watch: {
|
298
|
-
build: {
|
299
|
-
files: ['src/**'],
|
300
|
-
tasks: ['build'],
|
301
|
-
options: {
|
302
|
-
livereload: true
|
303
|
-
}
|
304
|
-
},
|
305
|
-
kitchen: {
|
306
|
-
files: ['kitchen-sink/jade/**', 'kitchen-sink/less/**'],
|
307
|
-
tasks: ['jade:kitchen', 'less:kitchen'],
|
308
|
-
options: {
|
309
|
-
livereload: true
|
310
|
-
}
|
311
|
-
},
|
312
|
-
examples: {
|
313
|
-
files: [
|
314
|
-
'examples/tab-bar/jade/**', 'examples/tab-bar/less/**',
|
315
|
-
'examples/split-view/jade/**', 'examples/split-view/less/**',
|
316
|
-
'examples/split-view-panel/jade/**', 'examples/split-view-panel/less/**'
|
317
|
-
],
|
318
|
-
tasks: ['jade:examples', 'less:examples'],
|
319
|
-
options: {
|
320
|
-
livereload: true
|
321
|
-
}
|
322
|
-
},
|
323
|
-
apps: {
|
324
|
-
files: [
|
325
|
-
'apps/weather7/jade/**', 'apps/weather7/less/**',
|
326
|
-
'apps/todo7/jade/**', 'apps/todo7/less/**',
|
327
|
-
],
|
328
|
-
tasks: ['jade:apps', 'less:apps'],
|
329
|
-
options: {
|
330
|
-
livereload: true
|
331
|
-
}
|
332
|
-
}
|
333
|
-
},
|
334
|
-
jade: {
|
335
|
-
build: {
|
336
|
-
options: {
|
337
|
-
pretty: true,
|
338
|
-
},
|
339
|
-
files: [{
|
340
|
-
expand: true,
|
341
|
-
cwd: 'src/templates/',
|
342
|
-
src: ['*.jade'],
|
343
|
-
dest: 'build/',
|
344
|
-
ext: '.html'
|
345
|
-
}]
|
346
|
-
},
|
347
|
-
kitchen: {
|
348
|
-
options: {
|
349
|
-
pretty: true
|
350
|
-
},
|
351
|
-
files: [{
|
352
|
-
expand: true,
|
353
|
-
cwd: 'kitchen-sink/jade/',
|
354
|
-
src: ['*.jade'],
|
355
|
-
dest: 'kitchen-sink/',
|
356
|
-
ext: '.html'
|
357
|
-
}]
|
358
|
-
},
|
359
|
-
examples: {
|
360
|
-
options: {
|
361
|
-
pretty: true
|
362
|
-
},
|
363
|
-
files: [
|
364
|
-
{
|
365
|
-
expand: true,
|
366
|
-
cwd: 'examples/tab-bar/jade/',
|
367
|
-
src: ['*.jade'],
|
368
|
-
dest: 'examples/tab-bar/',
|
369
|
-
ext: '.html'
|
370
|
-
},
|
371
|
-
{
|
372
|
-
expand: true,
|
373
|
-
cwd: 'examples/split-view/jade/',
|
374
|
-
src: ['*.jade'],
|
375
|
-
dest: 'examples/split-view/',
|
376
|
-
ext: '.html'
|
377
|
-
},
|
378
|
-
{
|
379
|
-
expand: true,
|
380
|
-
cwd: 'examples/split-view-panel/jade/',
|
381
|
-
src: ['*.jade'],
|
382
|
-
dest: 'examples/split-view-panel/',
|
383
|
-
ext: '.html'
|
384
|
-
},
|
385
|
-
|
386
|
-
]
|
387
|
-
},
|
388
|
-
apps: {
|
389
|
-
options: {
|
390
|
-
pretty: true
|
391
|
-
},
|
392
|
-
files: [
|
393
|
-
{
|
394
|
-
expand: true,
|
395
|
-
cwd: 'apps/weather7/jade/',
|
396
|
-
src: ['*.jade'],
|
397
|
-
dest: 'apps/weather7/',
|
398
|
-
ext: '.html'
|
399
|
-
},
|
400
|
-
{
|
401
|
-
expand: true,
|
402
|
-
cwd: 'apps/todo7/jade/',
|
403
|
-
src: ['*.jade'],
|
404
|
-
dest: 'apps/todo7/',
|
405
|
-
ext: '.html'
|
406
|
-
},
|
407
|
-
]
|
408
|
-
}
|
409
|
-
},
|
410
|
-
copy: {
|
411
|
-
build: {
|
412
|
-
files: [
|
413
|
-
{
|
414
|
-
expand: true,
|
415
|
-
cwd: 'src/',
|
416
|
-
src: ['img/**'],
|
417
|
-
dest: 'build/'
|
418
|
-
},
|
419
|
-
{
|
420
|
-
expand: true,
|
421
|
-
cwd: 'src/my-app/',
|
422
|
-
src: ['my-app.css'],
|
423
|
-
dest: 'build/css/'
|
424
|
-
},
|
425
|
-
{
|
426
|
-
expand: true,
|
427
|
-
cwd: 'src/my-app/',
|
428
|
-
src: ['my-app.js'],
|
429
|
-
dest: 'build/js/'
|
430
|
-
}
|
431
|
-
]
|
432
|
-
},
|
433
|
-
dist: {
|
434
|
-
files: [
|
435
|
-
{
|
436
|
-
expand: true,
|
437
|
-
cwd: 'build/',
|
438
|
-
src: ['**'],
|
439
|
-
dest: 'dist/'
|
440
|
-
}
|
441
|
-
]
|
442
|
-
},
|
443
|
-
},
|
444
|
-
});
|
445
|
-
|
446
|
-
// Default task.
|
447
|
-
this.registerTask('default', ['build']);
|
448
|
-
|
449
|
-
// Build a new version of the library
|
450
|
-
this.registerTask('test', 'Test of <%= pkg.name %>', [
|
451
|
-
'concat:js',
|
452
|
-
'less:build',
|
453
|
-
'concat:css_build',
|
454
|
-
'jshint:build',
|
455
|
-
]);
|
456
|
-
|
457
|
-
// Build a new version of the library
|
458
|
-
this.registerTask('build', 'Builds a development version of <%= pkg.name %>', [
|
459
|
-
'concat:js',
|
460
|
-
'less:build',
|
461
|
-
'concat:css_build',
|
462
|
-
'jshint:build',
|
463
|
-
'copy:build',
|
464
|
-
'jade:build',
|
465
|
-
]);
|
466
|
-
|
467
|
-
// Release
|
468
|
-
this.registerTask('dist', 'Builds a distributable version of <%= pkg.name %>', [
|
469
|
-
'concat:js',
|
470
|
-
'less:build',
|
471
|
-
'less:dist',
|
472
|
-
'concat:css_build',
|
473
|
-
'concat:css_dist',
|
474
|
-
'jshint:build',
|
475
|
-
'copy:build',
|
476
|
-
'jade:build',
|
477
|
-
'copy:dist',
|
478
|
-
'uglify:dist'
|
479
|
-
]);
|
480
|
-
|
481
|
-
|
482
|
-
// Kitchen Sink
|
483
|
-
this.registerTask('kitchen', 'Builds a kithcen sink', [
|
484
|
-
'build',
|
485
|
-
'jade:kitchen',
|
486
|
-
'less:kitchen'
|
487
|
-
]);
|
488
|
-
this.registerTask('examples', 'Compile examples less and jade files', [
|
489
|
-
'jade:examples',
|
490
|
-
'less:examples'
|
491
|
-
]);
|
492
|
-
this.registerTask('apps', 'Compile apps less and jade files', [
|
493
|
-
'jade:apps',
|
494
|
-
'less:apps'
|
495
|
-
]);
|
496
|
-
|
497
|
-
// Server
|
498
|
-
this.registerTask('server', 'Run server', [
|
499
|
-
'connect',
|
500
|
-
'open',
|
501
|
-
'watch'
|
502
|
-
]);
|
503
|
-
|
504
|
-
// Custom Build
|
505
|
-
this.registerTask('custom', 'Include modules in custom build', function (modules) {
|
506
|
-
if (modules) modules = modules.split(',');
|
507
|
-
modules = modules || [];
|
508
|
-
var modulesJsList = [], modulesLessList = [];
|
509
|
-
var i, module;
|
510
|
-
modulesJsList.push.apply(modulesJsList, customModules.core_intro.js);
|
511
|
-
modulesLessList.push.apply(modulesLessList, customModules.core_intro.less);
|
512
|
-
|
513
|
-
for (i = 0; i < modules.length; i++) {
|
514
|
-
module = customModules[modules[i]];
|
515
|
-
if (module.dependencies.length > 0) {
|
516
|
-
modules.push.apply(modules, module.dependencies);
|
517
|
-
}
|
518
|
-
}
|
519
|
-
for (i = 0; i < modules.length; i++) {
|
520
|
-
module = customModules[modules[i]];
|
521
|
-
if (!(module)) continue;
|
522
|
-
|
523
|
-
if (module.js.length > 0) {
|
524
|
-
modulesJsList.push.apply(modulesJsList, module.js);
|
525
|
-
}
|
526
|
-
if (module.less.length > 0) {
|
527
|
-
modulesLessList.push.apply(modulesLessList, module.less);
|
528
|
-
}
|
529
|
-
}
|
530
|
-
modulesJsList.push.apply(modulesJsList, customModules.core_outro.js);
|
531
|
-
modulesLessList.push.apply(modulesLessList, customModules.core_outro.less);
|
532
|
-
|
533
|
-
// Unique
|
534
|
-
var uniqueJsList = [];
|
535
|
-
var uniqueLessList = [];
|
536
|
-
for (i = 0; i < modulesJsList.length; i++) {
|
537
|
-
if (uniqueJsList.indexOf(modulesJsList[i]) < 0) uniqueJsList.push(modulesJsList[i]);
|
538
|
-
}
|
539
|
-
for (i = 0; i < modulesLessList.length; i++) {
|
540
|
-
if (uniqueLessList.indexOf(modulesLessList[i]) < 0) uniqueLessList.push(modulesLessList[i]);
|
541
|
-
}
|
542
|
-
|
543
|
-
// Tasks vars
|
544
|
-
grunt.config.set('modulesJsList', uniqueJsList);
|
545
|
-
grunt.config.set('modulesLessList', uniqueLessList);
|
546
|
-
grunt.config.set('modulesList', modules.join(', '));
|
547
|
-
|
548
|
-
// Run tasks
|
549
|
-
grunt.task.run([
|
550
|
-
'concat:js_custom',
|
551
|
-
'jshint:custom',
|
552
|
-
'uglify:custom',
|
553
|
-
'concat:less_custom',
|
554
|
-
'less:custom',
|
555
|
-
'less:custom_min',
|
556
|
-
'concat:css_custom'
|
557
|
-
]);
|
558
|
-
});
|
559
|
-
|
560
|
-
};
|